Skip to content

Commit 74b95da

Browse files
committed
PR_26171_BETA_079 message studio parent child table
1 parent 607df55 commit 74b95da

7 files changed

Lines changed: 138 additions & 282 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# PR_26171_BETA_079 Manual Validation Notes
2+
3+
## Review
4+
- Confirmed the Messages table remains the parent table.
5+
- Confirmed clicking a non-control Message row cell opens the Message Parts child table.
6+
- Confirmed Message Parts expose Text, Emotion, TTS Profile, Status, and Actions columns.
7+
- Confirmed Add Part opens an inline child-table editor with Emotion and TTS Profile selectors.
8+
- Confirmed TTS Studio compatibility validation still passes.
9+
10+
## Manual Browser Coverage
11+
- Covered by targeted Playwright validation for Message Studio load, row expansion, add/edit flows, and Message Part selectors.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# PR_26171_BETA_079 Validation Report
2+
3+
## Commands
4+
- PASS: node --check toolbox/messages/messages.js
5+
- PASS: npx playwright test tests/playwright/tools/MessagesTool.spec.mjs
6+
- PASS: npx playwright test tests/playwright/tools/TextToSpeechFunctional.spec.mjs
7+
- PASS: npm run test:workspace-v2
8+
- PASS: git diff --check
9+
10+
## Targeted Results
11+
- Message Studio Playwright tests: 2 passed.
12+
- Text To Speech compatibility Playwright tests: 3 passed.
13+
- Project Workspace legacy validation: 5 passed.
14+
15+
## Notes
16+
- npm run test:workspace-v2 is a legacy command name; user-facing language remains Project Workspace.
17+
- Standard generated validation-report churn was restored before staging this PR.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# PR_26171_BETA_079-message-studio-parent-child-table-completion
2+
3+
## Team Ownership
4+
- TEAM: BETA
5+
- Ownership source: docs_build/dev/PROJECT_MULTI_PC.txt
6+
- Scope confirmed: Message Studio, Messages, and TTS selection integration are owned by Team BETA.
7+
8+
## Summary
9+
- Completed Message Studio row-click behavior for the Messages parent table.
10+
- Kept Message Parts as the selected Message child table.
11+
- Kept Message Part controls for Text, Emotion, TTS Profile, Status, and Actions.
12+
- Preserved existing Play Part, Play Message, and Stop controls for the next playback PR.
13+
14+
## Scope Guard
15+
- Theme V2 only.
16+
- External JS only.
17+
- No inline styles, style blocks, inline handlers, page-local CSS, or tool-local CSS.
18+
- No database schema changes.
19+
- No separate Emotion Studio.
20+
- No browser-owned product data source of truth added.
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
docs_build/dev/reports/codex_changed_files.txt
22
docs_build/dev/reports/codex_review.diff
3-
docs_build/dev/reports/PR_26171_BETA_077-tts-profile-parent-child-table-manual-validation-notes.md
4-
docs_build/dev/reports/PR_26171_BETA_077-tts-profile-parent-child-table-validation-report.md
5-
docs_build/dev/reports/PR_26171_BETA_077-tts-profile-parent-child-table.md
6-
tests/playwright/tools/TextToSpeechFunctional.spec.mjs
7-
toolbox/text-to-speech/index.html
8-
toolbox/text-to-speech/text2speech.js
3+
docs_build/dev/reports/PR_26171_BETA_079-message-studio-parent-child-table-completion-manual-validation-notes.md
4+
docs_build/dev/reports/PR_26171_BETA_079-message-studio-parent-child-table-completion-validation-report.md
5+
docs_build/dev/reports/PR_26171_BETA_079-message-studio-parent-child-table-completion.md
6+
tests/playwright/tools/MessagesTool.spec.mjs
7+
toolbox/messages/messages.js

docs_build/dev/reports/codex_review.diff

Lines changed: 79 additions & 274 deletions
Large diffs are not rendered by default.

tests/playwright/tools/MessagesTool.spec.mjs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ async function addPart(page, values) {
151151
}
152152

153153
async function openMessageParts(page, messageName) {
154-
await page.locator("[data-messages-name-cell]").filter({ hasText: messageName }).click();
154+
await page.locator("[data-messages-row]").filter({ hasText: messageName }).locator("td").nth(1).click();
155155
}
156156

157157
test("Message Studio renders Messages with child Message Parts and plays ordered parts", async ({ page }) => {
@@ -198,7 +198,11 @@ test("Message Studio renders Messages with child Message Parts and plays ordered
198198
const messageRow = page.locator("[data-messages-row]").filter({ hasText: "Bat Encounter" });
199199
const messageNameCell = page.locator("[data-messages-name-cell]").filter({ hasText: "Bat Encounter" });
200200
await expect(page.locator("[data-messages-segment-host]")).toHaveCount(0);
201+
await expect(messageNameCell).toHaveAttribute("aria-expanded", "false");
201202
await messageRow.locator("td").nth(3).click();
203+
await expect(page.locator("[data-messages-segment-host]")).toBeVisible();
204+
await expect(messageNameCell).toHaveAttribute("aria-expanded", "true");
205+
await messageRow.locator("td").nth(2).click();
202206
await expect(page.locator("[data-messages-segment-host]")).toHaveCount(0);
203207
await messageNameCell.click();
204208
await expect(page.locator("[data-messages-segment-host]")).toBeVisible();

toolbox/messages/messages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1188,7 +1188,7 @@ elements.table?.addEventListener("click", async (event) => {
11881188
render();
11891189
return;
11901190
}
1191-
if (messageNameCell && row) {
1191+
if ((messageNameCell || row) && row) {
11921192
state.selectedMessageKey = state.selectedMessageKey === row.dataset.messagesRow ? "" : row.dataset.messagesRow;
11931193
state.selectedSegmentKey = "";
11941194
state.editingSegmentKey = "";

0 commit comments

Comments
 (0)