FN-6086: fix promote action spacing on task cards

Align the promote action chip with the task card's other pill-style controls.

- add shared gap and padding to the promote action chip styling
- match send-back promote styling to the updated chip spacing contract
- load app CSS in the task card test and assert the promote action keeps the expected chip class and spacing

Files changed:
 packages/dashboard/app/components/TaskCard.css     |  4 +++
 .../app/components/__tests__/TaskCard.test.tsx     | 34 +++++++++++++++-------
 2 files changed, 27 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6086

Fusion-Task-Lineage: 8e8f07d2-8bf2-46d3-b488-766694495ec4
This commit is contained in:
gsxdsm
2026-06-09 09:50:20 -07:00
parent 81c5bfeb27
commit 313751962b
2 changed files with 27 additions and 11 deletions

View File

@@ -797,7 +797,9 @@
.card-promote-action {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
flex-shrink: 0;
padding: var(--space-xs) var(--space-sm);
height: var(--card-chip-height);
min-height: var(--card-chip-height);
white-space: nowrap;
@@ -1294,6 +1296,8 @@
}
.card-promote-action.card-send-back-btn {
gap: var(--space-xs);
padding: var(--space-xs) var(--space-sm);
border: var(--btn-border-width) solid color-mix(in srgb, var(--text-muted) 30%, transparent);
background: color-mix(in srgb, var(--text-muted) 12%, transparent);
color: var(--text);

View File

@@ -4339,19 +4339,31 @@ describe("TaskCard mission badge", () => {
it("renders a promote action when onPromote is provided", () => {
const onPromote = vi.fn().mockResolvedValue(undefined);
const style = document.createElement("style");
style.textContent = loadAllAppCss();
document.head.appendChild(style);
render(
<TaskCard
task={makeTask({ id: "FN-777", column: "todo" })}
onOpenDetail={noop}
addToast={noop}
onPromote={onPromote}
/>,
);
try {
render(
<TaskCard
task={makeTask({ id: "FN-777", column: "todo" })}
onOpenDetail={noop}
addToast={noop}
onPromote={onPromote}
/>,
);
const promoteButton = screen.getByTestId("card-promote-FN-777");
expect(promoteButton).toBeDefined();
expect(promoteButton.textContent).toContain("Promote");
const promoteButton = screen.getByTestId("card-promote-FN-777");
expect(promoteButton).toBeDefined();
expect(promoteButton).toHaveClass("card-promote-action");
expect(promoteButton.textContent).toContain("Promote");
const styles = getComputedStyle(promoteButton);
expect(styles.gap).toBe("var(--space-xs)");
expect(styles.padding).toBe("var(--space-xs) var(--space-sm)");
} finally {
style.remove();
}
});
it("calls onPromote without opening the card when promote is clicked", () => {