 7d00a2dadb
			
		
	
	7d00a2dadb
	
	
		
			
	
		
	
	- Add Playwright E2E testing framework with cross-browser support (Chrome, Firefox) - Create authentication helpers for CalDAV server integration - Implement calendar interaction helpers with event creation, drag-and-drop, and view switching - Add comprehensive drag-and-drop test suite with event cleanup - Configure CI/CD integration with Gitea Actions for headless testing - Support both local development and CI environments with proper dependency management - Include video recording, screenshots, and HTML reporting for test debugging - Handle Firefox-specific timing and interaction challenges with force clicks and timeouts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			174 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Page snapshot
 | ||
| 
 | ||
| ```yaml
 | ||
| - generic [ref=e2]:
 | ||
|   - complementary [ref=e3]:
 | ||
|     - generic [ref=e4]:
 | ||
|       - heading "Runway" [level=1] [ref=e5]
 | ||
|       - generic [ref=e6]:
 | ||
|         - generic [ref=e7]: test
 | ||
|         - generic [ref=e8]: https://baikal.rcjohnstone.com/dav.php/
 | ||
|     - generic [ref=e9]:
 | ||
|       - heading "My Calendars" [level=3] [ref=e10]
 | ||
|       - list [ref=e11]:
 | ||
|         - listitem [ref=e12] [cursor=pointer]:
 | ||
|           - generic [ref=e13] [cursor=pointer]:
 | ||
|             - checkbox [checked] [ref=e14] [cursor=pointer]
 | ||
|             - generic [ref=e16] [cursor=pointer]: Default
 | ||
|         - listitem [ref=e17] [cursor=pointer]:
 | ||
|           - generic [ref=e18] [cursor=pointer]:
 | ||
|             - checkbox [checked] [ref=e19] [cursor=pointer]
 | ||
|             - generic [ref=e21] [cursor=pointer]: My New Calendar
 | ||
|         - listitem [ref=e22] [cursor=pointer]:
 | ||
|           - generic [ref=e23] [cursor=pointer]:
 | ||
|             - checkbox [checked] [ref=e24] [cursor=pointer]
 | ||
|             - generic [ref=e26] [cursor=pointer]: Third Calendar
 | ||
|     - generic [ref=e27]:
 | ||
|       - heading "External Calendars" [level=3] [ref=e28]
 | ||
|       - list [ref=e29]:
 | ||
|         - listitem [ref=e30]:
 | ||
|           - generic [ref=e31] [cursor=pointer]:
 | ||
|             - checkbox [checked] [ref=e32] [cursor=pointer]
 | ||
|             - generic [ref=e34] [cursor=pointer]: DSA
 | ||
|             - generic [ref=e35] [cursor=pointer]:
 | ||
|               - 'generic "Last updated: 2025-09-08 11:40" [ref=e36] [cursor=pointer]': 11:40
 | ||
|               - button "🔄" [ref=e37] [cursor=pointer]
 | ||
|         - listitem [ref=e38]:
 | ||
|           - generic [ref=e39] [cursor=pointer]:
 | ||
|             - checkbox [checked] [ref=e40] [cursor=pointer]
 | ||
|             - generic [ref=e42] [cursor=pointer]: Work
 | ||
|             - generic [ref=e43] [cursor=pointer]:
 | ||
|               - 'generic "Last updated: 2025-09-08 11:40" [ref=e44] [cursor=pointer]': 11:40
 | ||
|               - button "🔄" [ref=e45] [cursor=pointer]
 | ||
|     - generic [ref=e46]:
 | ||
|       - button "+ Add Calendar" [ref=e47] [cursor=pointer]
 | ||
|       - combobox [ref=e49] [cursor=pointer]:
 | ||
|         - option "Month" [selected]
 | ||
|         - option "Week"
 | ||
|       - combobox [ref=e51] [cursor=pointer]:
 | ||
|         - option "Default" [selected]
 | ||
|         - option "Ocean"
 | ||
|         - option "Forest"
 | ||
|         - option "Sunset"
 | ||
|         - option "Purple"
 | ||
|         - option "Dark"
 | ||
|         - option "Rose"
 | ||
|         - option "Mint"
 | ||
|       - combobox [ref=e53] [cursor=pointer]:
 | ||
|         - option "Default" [selected]
 | ||
|         - option "Google Calendar"
 | ||
|       - button "Logout" [ref=e54] [cursor=pointer]
 | ||
|   - main [ref=e55]:
 | ||
|     - generic [ref=e57]:
 | ||
|       - generic [ref=e58]:
 | ||
|         - generic [ref=e59]:
 | ||
|           - button "‹" [ref=e60] [cursor=pointer]
 | ||
|           - button "15" [ref=e61] [cursor=pointer]
 | ||
|         - heading "October 2025" [level=2] [ref=e62]
 | ||
|         - generic [ref=e63]:
 | ||
|           - button "Today" [ref=e64] [cursor=pointer]
 | ||
|           - button "›" [active] [ref=e65] [cursor=pointer]
 | ||
|       - generic [ref=e66]:
 | ||
|         - generic [ref=e67]: Sun
 | ||
|         - generic [ref=e68]: Mon
 | ||
|         - generic [ref=e69]: Tue
 | ||
|         - generic [ref=e70]: Wed
 | ||
|         - generic [ref=e71]: Thu
 | ||
|         - generic [ref=e72]: Fri
 | ||
|         - generic [ref=e73]: Sat
 | ||
|         - generic [ref=e74] [cursor=pointer]: "28"
 | ||
|         - generic [ref=e75] [cursor=pointer]: "29"
 | ||
|         - generic [ref=e76] [cursor=pointer]: "30"
 | ||
|         - generic [ref=e78] [cursor=pointer]: "1"
 | ||
|         - generic [ref=e80] [cursor=pointer]:
 | ||
|           - generic [ref=e81] [cursor=pointer]: "2"
 | ||
|           - generic [ref=e82] [cursor=pointer]:
 | ||
|             - generic [ref=e83] [cursor=pointer]: Unmasking Power Zine Launch
 | ||
|             - generic [ref=e84] [cursor=pointer]: "[EXTERNAL] Synced invitation: Orion KM/NLP monthly status meeting@ Monthly from 1pm to 2pm on the first Thursday (EDT) (connor.johnstone@arcfield.com)"
 | ||
|             - generic [ref=e85] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e86] [cursor=pointer]: +3 more
 | ||
|         - generic [ref=e88] [cursor=pointer]: "3"
 | ||
|         - generic [ref=e91] [cursor=pointer]: "4"
 | ||
|         - generic [ref=e94] [cursor=pointer]: "5"
 | ||
|         - generic [ref=e96] [cursor=pointer]:
 | ||
|           - generic [ref=e97] [cursor=pointer]: "6"
 | ||
|           - generic [ref=e98] [cursor=pointer]:
 | ||
|             - generic [ref=e99] [cursor=pointer]: MACI Tag-Up Meeting
 | ||
|             - generic [ref=e100] [cursor=pointer]: All Hands
 | ||
|         - generic [ref=e101] [cursor=pointer]:
 | ||
|           - generic [ref=e102] [cursor=pointer]: "7"
 | ||
|           - generic [ref=e103] [cursor=pointer]:
 | ||
|             - generic [ref=e104] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e105] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e107] [cursor=pointer]: "8"
 | ||
|         - generic [ref=e109] [cursor=pointer]:
 | ||
|           - generic [ref=e110] [cursor=pointer]: "9"
 | ||
|           - generic [ref=e111] [cursor=pointer]:
 | ||
|             - generic [ref=e112] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e113] [cursor=pointer]: KM NLP Weekly Technical Meeting
 | ||
|             - generic [ref=e114] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e116] [cursor=pointer]: "10"
 | ||
|         - generic [ref=e119] [cursor=pointer]: "11"
 | ||
|         - generic [ref=e122] [cursor=pointer]: "12"
 | ||
|         - generic [ref=e125] [cursor=pointer]: "13"
 | ||
|         - generic [ref=e127] [cursor=pointer]:
 | ||
|           - generic [ref=e128] [cursor=pointer]: "14"
 | ||
|           - generic [ref=e129] [cursor=pointer]:
 | ||
|             - generic [ref=e130] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e131] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e133] [cursor=pointer]: "15"
 | ||
|         - generic [ref=e135] [cursor=pointer]:
 | ||
|           - generic [ref=e136] [cursor=pointer]: "16"
 | ||
|           - generic [ref=e137] [cursor=pointer]:
 | ||
|             - generic [ref=e138] [cursor=pointer]: "[EXTERNAL] Synced invitation: Orion Monthly Technical exchange meeting @ Monthly from 1pm to 2pm on the third Thursday (EDT) (connor.johnstone@arcfield.com)"
 | ||
|             - generic [ref=e139] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e140] [cursor=pointer]: KM NLP Weekly Technical Meeting
 | ||
|             - generic [ref=e141] [cursor=pointer]: +1 more
 | ||
|         - generic [ref=e143] [cursor=pointer]: "17"
 | ||
|         - generic [ref=e146] [cursor=pointer]: "18"
 | ||
|         - generic [ref=e149] [cursor=pointer]: "19"
 | ||
|         - generic [ref=e151] [cursor=pointer]:
 | ||
|           - generic [ref=e152] [cursor=pointer]: "20"
 | ||
|           - generic [ref=e153] [cursor=pointer]:
 | ||
|             - generic [ref=e154] [cursor=pointer]: MACI Tag-Up Meeting
 | ||
|             - generic [ref=e155] [cursor=pointer]: All Hands
 | ||
|         - generic [ref=e156] [cursor=pointer]:
 | ||
|           - generic [ref=e157] [cursor=pointer]: "21"
 | ||
|           - generic [ref=e158] [cursor=pointer]:
 | ||
|             - generic [ref=e159] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e160] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e162] [cursor=pointer]: "22"
 | ||
|         - generic [ref=e164] [cursor=pointer]:
 | ||
|           - generic [ref=e165] [cursor=pointer]: "23"
 | ||
|           - generic [ref=e166] [cursor=pointer]:
 | ||
|             - generic [ref=e167] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e168] [cursor=pointer]: KM NLP Weekly Technical Meeting
 | ||
|             - generic [ref=e169] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e171] [cursor=pointer]: "24"
 | ||
|         - generic [ref=e173] [cursor=pointer]:
 | ||
|           - generic [ref=e174] [cursor=pointer]: "25"
 | ||
|           - generic [ref=e176] [cursor=pointer]: Generative AI Under Capitalism
 | ||
|         - generic [ref=e178] [cursor=pointer]: "26"
 | ||
|         - generic [ref=e181] [cursor=pointer]: "27"
 | ||
|         - generic [ref=e183] [cursor=pointer]:
 | ||
|           - generic [ref=e184] [cursor=pointer]: "28"
 | ||
|           - generic [ref=e185] [cursor=pointer]:
 | ||
|             - generic [ref=e186] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e187] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e189] [cursor=pointer]: "29"
 | ||
|         - generic [ref=e191] [cursor=pointer]:
 | ||
|           - generic [ref=e192] [cursor=pointer]: "30"
 | ||
|           - generic [ref=e193] [cursor=pointer]:
 | ||
|             - generic [ref=e194] [cursor=pointer]: VLEO IRaD - Standup (15 - 30 mins)
 | ||
|             - generic [ref=e195] [cursor=pointer]: KM NLP Weekly Technical Meeting
 | ||
|             - generic [ref=e196] [cursor=pointer]: OrbitIQ/Victus Haze IRAD Standup
 | ||
|         - generic [ref=e198] [cursor=pointer]: "31"
 | ||
|         - generic [ref=e200] [cursor=pointer]: "1"
 | ||
|         - generic [ref=e201] [cursor=pointer]: "2"
 | ||
|         - generic [ref=e202] [cursor=pointer]: "3"
 | ||
|         - generic [ref=e203] [cursor=pointer]: "4"
 | ||
|         - generic [ref=e204] [cursor=pointer]: "5"
 | ||
|         - generic [ref=e205] [cursor=pointer]: "6"
 | ||
|         - generic [ref=e206] [cursor=pointer]: "7"
 | ||
|         - generic [ref=e207] [cursor=pointer]: "8"
 | ||
| ``` |