Compare commits
2 Commits
92f60d3a9a
...
aef22f704f
| Author | SHA1 | Date | |
|---|---|---|---|
| aef22f704f | |||
| e4953ee42e |
@@ -14,8 +14,8 @@ When the user runs this command, execute the following workflow:
|
||||
- If user provides $ARGUMENTS (a simple message), skip to step 3
|
||||
|
||||
2. **Run pre-commit validation**:
|
||||
- Execute `pnpm lint` and report any issues
|
||||
- Execute `pnpm build` and ensure it succeeds
|
||||
- Execute `bun run lint` and report any issues
|
||||
- Execute `bun run type:check && bun run lint` (or `bun run build` if none available) and ensure it succeeds
|
||||
- If either fails, ask user if they want to proceed anyway or fix issues first
|
||||
|
||||
3. **Analyze git status**:
|
||||
|
||||
@@ -10,9 +10,9 @@ This command runs the complete testing pipeline for the project.
|
||||
|
||||
To run the complete testing pipeline, just type:
|
||||
|
||||
1. Run pnpm type:check
|
||||
2. Run pnpm lint
|
||||
3. Run pnpm test
|
||||
1. Run bun run type:check
|
||||
2. Run bun run lint
|
||||
3. Run bun test
|
||||
4. Report any failures
|
||||
5. Fix any failures
|
||||
6. Repeat until all tests pass
|
||||
@@ -20,7 +20,7 @@ To run the complete testing pipeline, just type:
|
||||
|
||||
## What This Command Does
|
||||
|
||||
1. Runs `pnpm type:check` to check for type errors
|
||||
2. Runs `pnpm lint` to check for linting errors
|
||||
3. Runs `pnpm test` to run the tests
|
||||
4. Reports any failures
|
||||
1. Runs `bun run type:check` to check for type errors
|
||||
2. Runs `bun run lint` to check for linting errors
|
||||
3. Runs `bun test` to run the tests
|
||||
4. Reports any failures
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
|
||||
**Primary Language:** TypeScript
|
||||
**Runtime:** Node.js/Bun
|
||||
**Package Manager:** npm/pnpm/yarn
|
||||
**Package Manager:** npm/pnpm/yarn/bun
|
||||
**Build Tools:** TypeScript Compiler (tsc)
|
||||
**Testing:** Jest/Vitest (if configured)
|
||||
**Linting:** ESLint (if configured)
|
||||
**Testing:** Jest/Vitest/Bun (if configured)
|
||||
**Linting:** ESLint/Biome/Oxlint (if configured)
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -101,4 +101,4 @@ Execute [task] now.
|
||||
- Code review completed
|
||||
- Build process succeeds
|
||||
- Tests pass (if available)
|
||||
- Documentation updated
|
||||
- Documentation updated
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "next lint && biome check --write --files-max-size=50000000 --vcs-enabled=true src",
|
||||
"typecheck": "tsgo"
|
||||
"type:check": "tsgo"
|
||||
},
|
||||
"dependencies": {
|
||||
"@openrouter/sdk": "^0.11.2",
|
||||
|
||||
@@ -124,7 +124,8 @@ export const EventCard = ({ event, onEdit, onDelete }: EventCardProps) => {
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
className="h-7 w-7 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity duration-150"
|
||||
className="h-7 w-7 shrink-0 text-muted-foreground/70 hover:text-foreground"
|
||||
aria-label="Event actions"
|
||||
>
|
||||
<MoreHorizontal className="h-3.5 w-3.5" />
|
||||
<span className="sr-only">Event actions</span>
|
||||
|
||||
31
tests/event-card.test.ts
Normal file
31
tests/event-card.test.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { renderToStaticMarkup } from "react-dom/server";
|
||||
import { EventCard } from "@/components/event-card";
|
||||
import type { CalendarEvent } from "@/lib/types";
|
||||
|
||||
const sampleEvent: CalendarEvent = {
|
||||
id: "evt_1",
|
||||
title: "Design Review",
|
||||
start: "2026-04-09T10:00:00+00:00",
|
||||
end: "2026-04-09T11:00:00+00:00",
|
||||
description: "Review the updated event list UI.",
|
||||
location: "Studio A",
|
||||
url: "https://example.com/event",
|
||||
allDay: false,
|
||||
};
|
||||
|
||||
describe("EventCard actions trigger", () => {
|
||||
test("shows the triple-dots trigger without requiring hover and exposes an aria-label for the icon-only button", () => {
|
||||
const markup = renderToStaticMarkup(
|
||||
EventCard({
|
||||
event: sampleEvent,
|
||||
onEdit: () => {},
|
||||
onDelete: () => {},
|
||||
}),
|
||||
);
|
||||
|
||||
expect(markup).toContain('aria-label="Event actions"');
|
||||
expect(markup).not.toContain("opacity-0");
|
||||
expect(markup).not.toContain("group-hover:opacity-100");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user