Skip to content

Commit a7aa2fc

Browse files
authored
Merge pull request #99 from hammercode-dev/feat/setup-playwright
[FEAT] - setup playwright
2 parents 4067812 + 03b1041 commit a7aa2fc

File tree

16 files changed

+653
-20
lines changed

16 files changed

+653
-20
lines changed

.github/workflows/playwright.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Playwright Tests
2+
on:
3+
push:
4+
branches: [main, master, development]
5+
pull_request:
6+
branches: [main, master, development]
7+
jobs:
8+
test:
9+
timeout-minutes: 60
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version: lts/*
16+
- name: Install dependencies
17+
run: npm install -g pnpm && pnpm install
18+
- name: Install Playwright Browsers
19+
run: pnpm exec playwright install --with-deps
20+
- name: Run Playwright tests
21+
run: pnpm run test:e2e
22+
- uses: actions/upload-artifact@v4
23+
if: ${{ !cancelled() }}
24+
with:
25+
name: playwright-report
26+
path: playwright-report/
27+
retention-days: 30

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,10 @@ yarn-error.log*
3535
# typescript
3636
*.tsbuildinfo
3737
next-env.d.ts
38+
39+
# Playwright
40+
node_modules/
41+
/test-results/
42+
/playwright-report/
43+
/blob-report/
44+
/playwright/.cache/

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
"check-format": "prettier --check .",
1313
"prepare": "husky",
1414
"test": "vitest",
15-
"test:coverage": "vitest run --coverage"
15+
"test:coverage": "vitest run --coverage",
16+
"test:e2e": "playwright test --config=tests/setup/playwright.config.ts",
17+
"test:e2e:ui": "playwright test --config=tests/setup/playwright.config.ts --ui",
18+
"test:e2e:headed": "playwright test --config=tests/setup/playwright.config.ts --headed",
19+
"test:e2e:debug": "playwright test --config=tests/setup/playwright.config.ts --debug"
1620
},
1721
"husky": {
1822
"hooks": {
@@ -81,6 +85,7 @@
8185
"zod": "^3.24.4"
8286
},
8387
"devDependencies": {
88+
"@playwright/test": "^1.55.0",
8489
"@tailwindcss/postcss": "^4.1.4",
8590
"@tailwindcss/typography": "^0.5.16",
8691
"@testing-library/dom": "^10.4.0",

pnpm-lock.yaml

Lines changed: 50 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/domains/Events.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const eventSchema = z.object({
66
description: z.string(),
77
slug: z.string().optional(),
88
author: z.string(),
9-
image: z.string(),
9+
image_event: z.string(),
1010
date: z.string().optional(),
1111
type: z.string(),
1212
location: z.string(),

src/features/events/components/EventCardV2.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import { EventType } from "@/domains/Events";
88
import { useFormatDate } from "@/lib/format";
99

1010
const EventCardV2: FC<{ data: EventType }> = ({ data }) => {
11-
const { title, date, image, status, duration, location } = data;
11+
const { title, date, image_event, status, duration, location } = data;
1212

1313
return (
1414
<Card className="flex size-full flex-col rounded-lg border shadow-md">
1515
<div className="bg-muted overflow-hidden rounded-t-lg">
1616
<Image
17-
src={image ?? "/assets/images/events/fallbackImage.webp"}
17+
src={image_event ?? "/assets/images/events/fallbackImage.webp"}
1818
alt={title}
1919
width={540}
2020
height={240}

src/features/events/components/EventForm.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,11 @@ const EventForm = ({ onSubmit, isLoading = false, initialData, mode = "create" }
318318
mode="single"
319319
selected={field.value ? new Date(field.value) : undefined}
320320
onSelect={(date) => field.onChange(date ? date.toISOString() : "")}
321-
disabled={(date) => date < new Date()}
321+
disabled={(date) => {
322+
const yesterday = new Date();
323+
yesterday.setDate(yesterday.getDate() - 1);
324+
return date < yesterday;
325+
}}
322326
/>
323327
</PopoverContent>
324328
</Popover>
@@ -351,7 +355,11 @@ const EventForm = ({ onSubmit, isLoading = false, initialData, mode = "create" }
351355
mode="single"
352356
selected={field.value ? new Date(field.value) : undefined}
353357
onSelect={(date) => field.onChange(date ? date.toISOString() : "")}
354-
disabled={(date) => date < new Date()}
358+
disabled={(date) => {
359+
const yesterday = new Date();
360+
yesterday.setDate(yesterday.getDate() - 1);
361+
return date < yesterday;
362+
}}
355363
/>
356364
</PopoverContent>
357365
</Popover>
@@ -383,7 +391,11 @@ const EventForm = ({ onSubmit, isLoading = false, initialData, mode = "create" }
383391
mode="single"
384392
selected={field.value ? new Date(field.value) : undefined}
385393
onSelect={(date) => field.onChange(date ? date.toISOString() : "")}
386-
disabled={(date) => date < new Date()}
394+
disabled={(date) => {
395+
const yesterday = new Date();
396+
yesterday.setDate(yesterday.getDate() - 1);
397+
return date < yesterday;
398+
}}
387399
/>
388400
</PopoverContent>
389401
</Popover>

src/features/events/components/MyEventCard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ const MyEventCard = ({ data }: { data: UserEventType }) => {
1515
<div
1616
className="absolute inset-0 scale-110 bg-cover bg-center blur-xs"
1717
style={{
18-
backgroundImage: `url(${data.event_detail.image ?? "/assets/images/events/fallbackImage.webp"})`,
18+
backgroundImage: `url(${data.event_detail.image_event ?? "/assets/images/events/fallbackImage.webp"})`,
1919
}}
2020
/>
2121
<Image
2222
alt={`Event ${order_no}`}
23-
src={data.event_detail.image ?? "/assets/images/events/fallbackImage.webp"}
23+
src={data.event_detail.image_event ?? "/assets/images/events/fallbackImage.webp"}
2424
width={540}
2525
height={240}
2626
className="relative z-10 object-cover object-center"

src/features/events/pages/PublicEventDetailPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ const EventDetailPage: FC<EventDetailPageProp> = ({ eventId }) => {
2828
<div className="w-full rounded-lg">
2929
{!isLoading ? (
3030
<Image
31-
src={event?.image ?? "/assets/images/events/fallbackImage.webp"}
31+
src={event?.image_event ?? "/assets/images/events/fallbackImage.webp"}
3232
alt="Banner"
3333
width={1000}
3434
height={500}
3535
priority
36-
className="rounded-lg"
36+
className="rounded-lg border shadow-md"
3737
/>
3838
) : (
3939
<Skeleton className="h-24 w-full rounded-lg sm:h-96" />

src/locales/id.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
"enter-email": "Masukan Email",
6767
"enter-password": "Masukan Password",
6868
"no-account": "Apakah Belum Punya Akun?",
69-
"sign-in": "Sign In",
69+
"sign-in": "Masuk",
7070
"sign-up": "Sign Up",
7171
"forgot-password": "Lupa Password?"
7272
},

0 commit comments

Comments
 (0)