feat: refine workbench chrome (#761)
* docs: define product and design direction * style: establish restrained workbench primitives * refactor: declutter board and task topbars * style: align dockview panel chrome * fix: align task topbar vcs control sizing * refactor: surface integrations navigation * fix: repair integrations and task creation workflow * refactor: include linear in integrations navigation * style: restore familiar workbench tones * fix: add dockview tab breathing room * fix: show configured integration shortcuts * fix: hover open integrations menu * fix: stabilize integrations hover menu * fix: align home and dockview topbars * fix: normalize home topbar controls * fix: compact home topbar height * fix: simplify home chrome and split buttons * fix: move integrations to left chrome * fix: restore home stats shortcut * fix: add dockview tab breathing room * fix: border home stats button * fix: streamline dockview topbar actions * fix: align task split button seam * fix: address review feedback * fix: restore topbar e2e affordances * fix: stabilize workflow e2e isolation * fix: add task topbar action overflow * fix: address PR review feedback
This commit is contained in:
@@ -30,19 +30,23 @@ export class WorkflowSettingsPage {
|
||||
/** Find a workflow card by the name shown in its input field using its current value. */
|
||||
async findWorkflowCard(name: string): Promise<Locator> {
|
||||
const cards = this.page.locator('[data-testid^="workflow-card-"]');
|
||||
const count = await cards.count();
|
||||
for (let i = 0; i < count; i++) {
|
||||
const card = cards.nth(i);
|
||||
await expect(cards.first()).toBeVisible();
|
||||
|
||||
const testIds = await cards.evaluateAll((elements) =>
|
||||
elements
|
||||
.map((element) => element.getAttribute("data-testid"))
|
||||
.filter((testId): testId is string => Boolean(testId)),
|
||||
);
|
||||
|
||||
for (const testId of testIds) {
|
||||
const card = this.page.getByTestId(testId);
|
||||
const input = card.locator("input").first();
|
||||
const value = await input.inputValue();
|
||||
const value = await input.inputValue({ timeout: 500 }).catch(() => null);
|
||||
if (value === name) {
|
||||
// Return a stable locator using the specific data-testid, not positional nth()
|
||||
const testId = await card.getAttribute("data-testid");
|
||||
if (testId) return this.page.getByTestId(testId);
|
||||
return card;
|
||||
}
|
||||
}
|
||||
// Return a locator that won't match so assertions can fail with a good message
|
||||
|
||||
return this.page.getByTestId(`workflow-card-not-found-${name}`);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user