@@ -61,11 +61,14 @@ test("Game Design shows an actionable overlay when project context is missing",
6161 await expect ( page . locator ( "[data-game-design-project-overlay]" ) ) . toBeVisible ( ) ;
6262 await expect ( page . locator ( "[data-game-design-validation-overlay]" ) ) . toBeVisible ( ) ;
6363 await expect ( page . locator ( "[data-game-design-validation-list]" ) ) . toContainText ( "Project Context" ) ;
64- await expect ( page . locator ( "[data-game-design-active-project]" ) ) . toHaveText ( "No Project Workspace project" ) ;
64+ await expect ( page . locator ( "[data-game-design-project-context]" ) ) . toHaveText ( "No Project Workspace project" ) ;
65+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( "{" ) ;
66+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( '"activeProjectId"' ) ;
6567
6668 await page . getByRole ( "button" , { name : "Save Game Design" } ) . click ( ) ;
6769 await expect ( page . locator ( "[data-game-design-log]" ) ) . toHaveText ( "Open or seed a project before saving Game Design." ) ;
68- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"activeProjectId": null' ) ;
70+ await expect ( page . locator ( "[data-game-design-output-validation]" ) ) . toHaveText ( "Blocked" ) ;
71+ await expect ( page . locator ( "[data-game-design-output-missing]" ) ) . toHaveText ( "Project Context" ) ;
6972
7073 await expectNoPageFailures ( failures ) ;
7174 } finally {
@@ -78,8 +81,18 @@ test("Game Design saves and updates design fields against the active project", a
7881 const failures = await openRepoPage ( page , "/toolbox/game-design/index.html" ) ;
7982
8083 try {
81- await expect ( page . locator ( "[data-game-design-active-project]" ) ) . toHaveText ( "Demo Project" ) ;
82- await expect ( page . locator ( "[data-game-design-project-purpose]" ) ) . toHaveText ( "Game Project" ) ;
84+ await expect ( page . locator ( "[data-game-design-project-context]" ) ) . toHaveText ( "Demo Project - Game Project" ) ;
85+ await expect ( page . getByText ( "Project Context" , { exact : true } ) ) . toHaveCount ( 1 ) ;
86+ await expect ( page . locator ( "[data-game-design-project-context] select, [data-game-design-project-context] input, [data-game-design-project-context] button, [data-game-design-project-context] a" ) ) . toHaveCount ( 0 ) ;
87+ await expect ( page . locator ( "[data-game-design-active-project], [data-game-design-project-purpose], [data-game-design-project-status], [data-game-design-project-select]" ) ) . toHaveCount ( 0 ) ;
88+ await expect ( page . locator ( ".tool-center-panel [data-game-design-form]" ) ) . toBeVisible ( ) ;
89+ await expect ( page . locator ( "aside [data-game-design-form]" ) ) . toHaveCount ( 0 ) ;
90+ await expect ( page . locator ( "[data-game-design-output] pre, [data-game-design-output] code" ) ) . toHaveCount ( 0 ) ;
91+ await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( "Design Summary" ) ;
92+ await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( "Validation Status" ) ;
93+ await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( "Next Step" ) ;
94+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( "{" ) ;
95+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( '"gameType"' ) ;
8396 await expect ( page . locator ( "[data-game-design-validation-overlay]" ) ) . toBeVisible ( ) ;
8497 await expect ( page . locator ( "[data-game-design-validation-list]" ) ) . toContainText ( "Game Type" ) ;
8598 await expect ( page . locator ( "[data-game-design-validation-list]" ) ) . toContainText ( "Genre" ) ;
@@ -96,12 +109,14 @@ test("Game Design saves and updates design fields against the active project", a
96109 await expect ( page . locator ( "[data-game-design-validation-overlay]" ) ) . toBeHidden ( ) ;
97110 await expect ( page . locator ( "[data-game-design-status]" ) ) . toHaveText ( "Ready" ) ;
98111 await expect ( page . locator ( "[data-game-design-recommended-tool]" ) . first ( ) ) . toHaveText ( "Game Configuration" ) ;
99- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"gameType": "Puzzle"' ) ;
100- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"genre": "Adventure"' ) ;
112+ await expect ( page . locator ( "[data-game-design-output-summary]" ) ) . toHaveText ( "A compact puzzle adventure with one clear project promise." ) ;
113+ await expect ( page . locator ( "[data-game-design-output-validation]" ) ) . toHaveText ( "Ready" ) ;
114+ await expect ( page . locator ( "[data-game-design-output-next-step]" ) ) . toHaveText ( "Game Configuration" ) ;
115+ await expect ( page . locator ( "[data-game-design-output-missing]" ) ) . toHaveText ( "None" ) ;
101116
102117 await page . getByLabel ( "Genre" ) . selectOption ( "Fantasy" ) ;
103118 await page . getByRole ( "button" , { name : "Save Game Design" } ) . click ( ) ;
104- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"genre": "Fantasy "' ) ;
119+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( '"genre"' ) ;
105120 await expect ( page . locator ( "[data-game-design-log]" ) ) . toHaveText ( "Saved Demo Project Game Design as ready." ) ;
106121
107122 await expectNoPageFailures ( failures ) ;
@@ -115,8 +130,7 @@ test("Game Design authors capability demos as Project Workspace projects", async
115130 const failures = await openRepoPage ( page , "/toolbox/game-design/index.html?project=gravity-demo" ) ;
116131
117132 try {
118- await expect ( page . locator ( "[data-game-design-active-project]" ) ) . toHaveText ( "Gravity Demo" ) ;
119- await expect ( page . locator ( "[data-game-design-project-purpose]" ) ) . toHaveText ( "Capability Demo" ) ;
133+ await expect ( page . locator ( "[data-game-design-project-context]" ) ) . toHaveText ( "Gravity Demo - Capability Demo" ) ;
120134 await expect ( page . getByText ( "Capability demos remain Project Workspace projects." ) ) . toBeVisible ( ) ;
121135 await expect ( page . locator ( "[data-game-design-capability-demos]" ) ) . toContainText ( "Gravity Demo: Project Workspace project" ) ;
122136 await expect ( page . getByLabel ( "Game Type" ) ) . toHaveValue ( "Capability Demo" ) ;
@@ -126,9 +140,9 @@ test("Game Design authors capability demos as Project Workspace projects", async
126140
127141 await page . getByLabel ( "Capability Demo Notes" ) . fill ( "Gravity demo remains project-owned authoring data." ) ;
128142 await page . getByRole ( "button" , { name : "Save Game Design" } ) . click ( ) ;
129- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"activeProjectId": "gravity-demo"' ) ;
130- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"projectPurpose": "Capability Demo "' ) ;
131- await expect ( page . locator ( "[data-game-design-output]" ) ) . toContainText ( '"capabilityDemoAuthoring": true' ) ;
143+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( "{" ) ;
144+ await expect ( page . locator ( "[data-game-design-output]" ) ) . not . toContainText ( '"capabilityDemoAuthoring "' ) ;
145+ await expect ( page . locator ( "[data-game-design-output-capability ]" ) ) . toHaveText ( "Gravity Demo remains a Project Workspace project." ) ;
132146 await expect ( page . locator ( "[data-game-design-table-counts]" ) ) . toContainText ( "game_design_capability_demos" ) ;
133147
134148 await expectNoPageFailures ( failures ) ;
0 commit comments