Files
larksuite-cli/tests/cli_e2e/calendar/coverage.md
Yuxuan Zhao 5280517d4b Feat/cli e2e tests with UAT (#528)
* test: expand and stabilize cli e2e workflows

* ci: run deadcode with test entrypoints
2026-04-17 16:57:17 +08:00

6.4 KiB

Calendar CLI E2E Coverage

Metrics

  • Denominator: 23 leaf commands
  • Covered: 12
  • Coverage: 52.2%

Summary

  • TestCalendar_ViewAgenda: proves the user shortcut calendar +agenda; key t.Run(...) proof points are view today agenda as user, view agenda with date range as user, and view agenda with pretty format as user.
  • TestCalendar_PersonalEventWorkflowAsUser: proves a self-contained user event workflow across calendar calendars primary, calendar +create, calendar events get, and calendar +agenda; key t.Run(...) proof points are get primary calendar as user, create personal event with shortcut as user, get created event as user, and find created event in agenda as user.
  • TestCalendar_RSVPWorkflowAsUser: proves the user shortcuts calendar +freebusy and calendar +rsvp; key t.Run(...) proof points are query freebusy as user, reply tentative as user, verify tentative freebusy as user, reply accept as user, and verify accepted freebusy as user.
  • TestCalendar_CreateEvent: proves calendar +create, calendar events get, and calendar events delete; key t.Run(...) proof points are create event with shortcut as bot, verify event created as bot, and delete event as bot.
  • TestCalendar_ManageCalendar: proves calendar calendars primary, calendar calendars create, calendar calendars get, calendar calendars list, and calendar calendars patch; key t.Run(...) proof points are get primary calendar as bot, create calendar as bot, get created calendar as bot, find created calendar in list as bot, and update calendar as bot.
  • Cleanup note: calendar calendars delete is part of the calendar lifecycle workflow and is counted as covered because the workflow proves the full shared-calendar lifecycle.
  • Blocked area: direct event.attendees * APIs, calendar calendars search, calendar events create|instance_view|patch|search, calendar freebusys list, and planning shortcuts calendar +room-find / calendar +suggestion still need deterministic workflows; the planning shortcuts currently depend on live tenant availability and room inventory, so they remain uncovered.

Command Table

Status Cmd Type Testcase Key parameter shapes Notes / uncovered reason
calendar +agenda shortcut calendar_view_agenda_test.go::TestCalendar_ViewAgenda; calendar_personal_event_workflow_test.go::TestCalendar_PersonalEventWorkflowAsUser/find created event in agenda as user default today; --start; --end; --format pretty user identity readback plus general agenda view
calendar +create shortcut calendar_create_event_test.go::TestCalendar_CreateEvent/create event with shortcut as bot; calendar_personal_event_workflow_test.go::TestCalendar_PersonalEventWorkflowAsUser/create personal event with shortcut as user --summary; --start; --end; --calendar-id; --description bot and user workflow coverage
calendar +freebusy shortcut calendar_rsvp_workflow_test.go::TestCalendar_RSVPWorkflowAsUser/query freebusy as user; calendar_rsvp_workflow_test.go::TestCalendar_RSVPWorkflowAsUser/verify tentative freebusy as user; calendar_rsvp_workflow_test.go::TestCalendar_RSVPWorkflowAsUser/verify accepted freebusy as user default current user; --start; --end user identity flow
calendar +room-find shortcut none no deterministic self-contained workflow yet; output depends on live room inventory
calendar +rsvp shortcut calendar_rsvp_workflow_test.go::TestCalendar_RSVPWorkflowAsUser/reply tentative as user; calendar_rsvp_workflow_test.go::TestCalendar_RSVPWorkflowAsUser/reply accept as user --calendar-id; --event-id; --rsvp-status user reply flow
calendar +suggestion shortcut none no deterministic self-contained workflow yet; output depends on live availability suggestions
calendar calendars create api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/create calendar as bot summary; description in --data
calendar calendars delete api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/delete calendar as bot calendar_id in --params
calendar calendars get api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/get created calendar as bot; calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/verify updated calendar as bot calendar_id in --params
calendar calendars list api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/list calendars as bot; calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/find created calendar in list as bot none
calendar calendars patch api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/update calendar as bot calendar_id in --params; summary in --data
calendar calendars primary api calendar_manage_calendar_test.go::TestCalendar_ManageCalendar/get primary calendar as bot; calendar_personal_event_workflow_test.go::TestCalendar_PersonalEventWorkflowAsUser/get primary calendar as user none bot and user primary calendar lookup
calendar calendars search api none no search workflow yet
calendar events create api none only covered indirectly through calendar +create
calendar events delete api calendar_create_event_test.go::TestCalendar_CreateEvent/delete event as bot calendar_id; event_id in --params
calendar events get api calendar_create_event_test.go::TestCalendar_CreateEvent/verify event created as bot; calendar_personal_event_workflow_test.go::TestCalendar_PersonalEventWorkflowAsUser/get created event as user calendar_id; event_id in --params bot and user read-after-write coverage
calendar events instance_view api none +agenda is indirect orchestration, not direct API coverage
calendar events patch api none no direct event-update workflow yet
calendar events search api none no search workflow yet
calendar freebusys list api none no direct freebusy API workflow yet
calendar event.attendees batch_delete api none requires an isolated attendee lifecycle workflow
calendar event.attendees create api none requires an isolated attendee lifecycle workflow
calendar event.attendees list api none requires an isolated attendee lifecycle workflow