feat(FN-3753): unify agent action gating classifications and add even cards
The merge adds the `fusion-plugin-even-cards` workspace plugin with board card endpoints and auth support, refactors agent action gating classifications into a unified `gating-classifications.ts` module, refreshes review state on manual triggers, repoints roadmap type imports to the plugin package, Fusion-Task-Id: FN-3753
This commit is contained in:
@@ -2999,10 +2999,12 @@
|
|||||||
|
|
||||||
.gm-pull-split-toggle {
|
.gm-pull-split-toggle {
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
|
width: auto;
|
||||||
|
min-width: var(--space-xl);
|
||||||
border-top-left-radius: 0;
|
border-top-left-radius: 0;
|
||||||
border-bottom-left-radius: 0;
|
border-bottom-left-radius: 0;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
padding-inline: var(--space-sm);
|
padding-inline: var(--space-xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
.gm-pull-menu {
|
.gm-pull-menu {
|
||||||
@@ -3648,6 +3650,11 @@
|
|||||||
flex: 1 1 100%;
|
flex: 1 1 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gm-pull-split-toggle {
|
||||||
|
min-width: 36px;
|
||||||
|
min-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
.gm-pull-menu {
|
.gm-pull-menu {
|
||||||
left: 0;
|
left: 0;
|
||||||
right: auto;
|
right: auto;
|
||||||
|
|||||||
@@ -1395,6 +1395,47 @@ describe("GitManagerModal", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("FN-3753: pull split toggle is narrower than the main Pull button", async () => {
|
||||||
|
render(
|
||||||
|
<GitManagerModal isOpen={true} onClose={vi.fn()} tasks={mockTasks} addToast={mockAddToast} />
|
||||||
|
);
|
||||||
|
fireEvent.click(screen.getByRole("tab", { name: /remotes/i }));
|
||||||
|
|
||||||
|
const syncCard = await screen.findByTestId("remote-sync-card");
|
||||||
|
const pullMainButton = within(syncCard).getByRole("button", { name: /^pull$/i });
|
||||||
|
const pullToggleButton = within(syncCard).getByRole("button", { name: /pull options/i });
|
||||||
|
|
||||||
|
expect(pullToggleButton).toHaveClass("gm-pull-split-toggle");
|
||||||
|
expect(pullToggleButton).toHaveClass("btn-icon");
|
||||||
|
|
||||||
|
vi.spyOn(pullMainButton, "getBoundingClientRect").mockReturnValue({
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: 96,
|
||||||
|
height: 36,
|
||||||
|
top: 0,
|
||||||
|
right: 96,
|
||||||
|
bottom: 36,
|
||||||
|
left: 0,
|
||||||
|
toJSON: () => ({}),
|
||||||
|
});
|
||||||
|
vi.spyOn(pullToggleButton, "getBoundingClientRect").mockReturnValue({
|
||||||
|
x: 96,
|
||||||
|
y: 0,
|
||||||
|
width: 36,
|
||||||
|
height: 36,
|
||||||
|
top: 0,
|
||||||
|
right: 132,
|
||||||
|
bottom: 36,
|
||||||
|
left: 96,
|
||||||
|
toJSON: () => ({}),
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(pullToggleButton.getBoundingClientRect().width).toBeLessThan(
|
||||||
|
pullMainButton.getBoundingClientRect().width
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("closes pull options menu on outside click and Escape", async () => {
|
it("closes pull options menu on outside click and Escape", async () => {
|
||||||
const user = userEvent.setup();
|
const user = userEvent.setup();
|
||||||
render(
|
render(
|
||||||
|
|||||||
Reference in New Issue
Block a user