Skip to content

Commit 7b63ecc

Browse files
authored
Merge pull request #44 from DaleStudy/feat/cloudflare-vitest-tests
Add Cloudflare Workers Vitest test setup
2 parents f3c1f69 + 3ae4b15 commit 7b63ecc

17 files changed

Lines changed: 891 additions & 58 deletions

โ€Ž.github/workflows/integration.yamlโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v6
1616
- uses: oven-sh/setup-bun@v2
17-
- run: bun test handlers/
18-
- run: bun test tests/
17+
- run: bun install
18+
- run: bun run test

โ€ŽAGENTS.mdโ€Ž

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,35 @@ Fork PR์—์„œ๋„ ์ž‘๋™ํ•˜๋„๋ก GitHub Projects v2์˜ Week ํ•„๋“œ๋ฅผ ์กฐํšŒํ•˜
2828

2929
```
3030
~/work/github/
31-
โ”œโ”€โ”€ index.js # Worker ๋ฉ”์ธ ์ฝ”๋“œ (์—”๋“œํฌ์ธํŠธ ๋ผ์šฐํŒ…)
32-
โ”œโ”€โ”€ wrangler.jsonc # Cloudflare Workers ์„ค์ •
33-
โ”œโ”€โ”€ .env # ๋กœ์ปฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (์ปค๋ฐ‹ ์ œ์™ธ)
34-
โ”œโ”€โ”€ .gitignore # Git ์ œ์™ธ ํŒŒ์ผ
35-
โ”œโ”€โ”€ handlers/ # ๊ธฐ๋Šฅ๋ณ„ ํ•ธ๋“ค๋Ÿฌ
36-
โ”‚ โ”œโ”€โ”€ check-weeks.js # PR Week ์„ค์ • ๊ฒ€์‚ฌ (์ˆ˜๋™ ํ˜ธ์ถœ์šฉ)
37-
โ”‚ โ””โ”€โ”€ webhooks.js # GitHub webhook ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
38-
โ”œโ”€โ”€ utils/ # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ
39-
โ”‚ โ”œโ”€โ”€ cors.js # CORS ํ—ค๋” ๋ฐ ์‘๋‹ต ์œ ํ‹ธ๋ฆฌํ‹ฐ
40-
โ”‚ โ”œโ”€โ”€ github.js # GitHub ์ธ์ฆ ๋ฐ API ์œ ํ‹ธ๋ฆฌํ‹ฐ
41-
โ”‚ โ””โ”€โ”€ webhook.js # Webhook signature ๊ฒ€์ฆ
42-
โ”œโ”€โ”€ README.md # ํ”„๋กœ์ ํŠธ ์„ค๋ช…
43-
โ”œโ”€โ”€ DEPLOYMENT.md # ๋ฐฐํฌ ๊ฐ€์ด๋“œ
44-
โ”œโ”€โ”€ AGENTS.md # ์ด ํŒŒ์ผ (AI ์—์ด์ „ํŠธ ๊ฐ€์ด๋“œ)
45-
โ”œโ”€โ”€ CLAUDE.md # Claude Code ์ฐธ์กฐ ํŒŒ์ผ (AGENTS.md๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)
46-
โ””โ”€โ”€ *.pem # GitHub App Private Keys (์ปค๋ฐ‹ ์ œ์™ธ)
31+
โ”œโ”€โ”€ index.js # Worker ๋ฉ”์ธ ์ฝ”๋“œ (์—”๋“œํฌ์ธํŠธ ๋ผ์šฐํŒ…)
32+
โ”œโ”€โ”€ wrangler.jsonc # Cloudflare Workers ์„ค์ •๊ณผ vars
33+
โ”œโ”€โ”€ package.json # Vitest ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ๋ฐ devDependencies
34+
โ”œโ”€โ”€ bun.lock # Bun ์˜์กด์„ฑ lockfile
35+
โ”œโ”€โ”€ vitest.config.js # Cloudflare Workers Vitest integration ์„ค์ •
36+
โ”œโ”€โ”€ .github/workflows/ # CI ์›Œํฌํ”Œ๋กœ์šฐ (bun install โ†’ bun run test)
37+
โ”œโ”€โ”€ handlers/ # ๊ธฐ๋Šฅ๋ณ„ ํ•ธ๋“ค๋Ÿฌ์™€ ํ•ธ๋“ค๋Ÿฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
38+
โ”œโ”€โ”€ utils/ # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
39+
โ”œโ”€โ”€ tests/ # Worker runtime smoke test์™€ ๊ต์ฐจ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ
40+
โ”œโ”€โ”€ README.md # ํ”„๋กœ์ ํŠธ ์„ค๋ช…
41+
โ”œโ”€โ”€ AGENTS.md # ์ด ํŒŒ์ผ (AI ์—์ด์ „ํŠธ ๊ฐ€์ด๋“œ)
42+
โ”œโ”€โ”€ CLAUDE.md # Claude Code ์ฐธ์กฐ ํŒŒ์ผ (AGENTS.md๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)
43+
โ””โ”€โ”€ *.pem # GitHub App Private Keys (์ปค๋ฐ‹ ์ œ์™ธ)
4744
```
4845

4946
### ์ฝ”๋“œ ๊ตฌ์กฐ ์„ค๋ช…
5047

51-
- **index.js (32์ค„)**: ์—”๋“œํฌ์ธํŠธ ๋ผ์šฐํŒ…๋งŒ ๋‹ด๋‹น. pathname๋ณ„ ํ•ธ๋“ค๋Ÿฌ ํ˜ธ์ถœ
52-
- **handlers/**: ๊ธฐ๋Šฅ๋ณ„ ํ•ธ๋“ค๋Ÿฌ
48+
- **index.js**: ์—”๋“œํฌ์ธํŠธ ๋ผ์šฐํŒ…๋งŒ ๋‹ด๋‹น. pathname๋ณ„ ํ•ธ๋“ค๋Ÿฌ ํ˜ธ์ถœ
49+
- **handlers/**: ๊ธฐ๋Šฅ๋ณ„ ํ•ธ๋“ค๋Ÿฌ์™€ `*.test.js` ํ•ธ๋“ค๋Ÿฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
5350
- `check-weeks.js`: PR Week ์„ค์ • ๊ฒ€์‚ฌ, ๋Œ“๊ธ€ ์ž‘์„ฑ/์‚ญ์ œ
54-
- **utils/**: ์—ฌ๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
51+
- `webhooks.js`: GitHub webhook ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
52+
- `internal-dispatch.js`: self-fetch ๋‚ด๋ถ€ AI ํ•ธ๋“ค๋Ÿฌ ๋””์ŠคํŒจ์น˜
53+
- `approve_prs.js`, `merge_prs.js`: PR ์ผ๊ด„ ์Šน์ธ/๋ณ‘ํ•ฉ
54+
- **utils/**: ์—ฌ๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ `*.test.js` ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
5555
- `cors.js`: CORS ํ—ค๋” ๊ด€๋ฆฌ ๋ฐ ์‘๋‹ต ์ƒ์„ฑ (`corsResponse`, `errorResponse`)
5656
- `github.js`: GitHub App ์ธ์ฆ (JWT, Installation Token), RSA ์„œ๋ช…
57+
- `webhook.js`: Webhook signature ๊ฒ€์ฆ
58+
- **tests/**: Worker runtime smoke test, subrequest budget, cross-module ํ…Œ์ŠคํŠธ
59+
- **vitest.config.js**: `@cloudflare/vitest-pool-workers`๊ฐ€ `wrangler.jsonc`๋ฅผ ์ฝ๋„๋ก ์„ค์ •
5760

5861
### ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ
5962

@@ -390,21 +393,24 @@ curl -X POST https://github.dalestudy.com/check-weeks \
390393

391394
## ํ…Œ์ŠคํŠธ
392395

393-
์ด ํ”„๋กœ์ ํŠธ๋Š” [Bun](https://bun.sh)์˜ ๋‚ด์žฅ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ `package.json`์ด๋‚˜ ์˜์กด์„ฑ ์„ค์น˜ ์—†์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
396+
์ด ํ”„๋กœ์ ํŠธ๋Š” Cloudflare Workers Vitest integration์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Vitest๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , Worker ๋Ÿฐํƒ€์ž„๊ณผ ๋ฐ”์ธ๋”ฉ์ด ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” Cloudflare ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
394397

395398
### ํ…Œ์ŠคํŠธ ์‹คํ–‰
396399

397-
ํ…Œ์ŠคํŠธ๋Š” `handlers/`(ํ•ธ๋“ค๋Ÿฌ๋ณ„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ)์™€ `tests/`(ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ)๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋‹ค. Bun์˜ `vi.mock()`์€ ํ”„๋กœ์„ธ์Šค ์ „์—ญ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก๋˜์–ด ๊ฐ™์€ ์‹คํ–‰ ๋‚ด์—์„œ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ๋ˆ„์ถœ๋˜๋ฏ€๋กœ, ๊ฐ™์€ ๋ชจ๋“ˆ์„ ๋ชจํ‚นํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ์‹ค์ œ ๊ตฌํ˜„์„ ํ˜ธ์ถœํ•˜๋Š” ํ…Œ์ŠคํŠธ๋Š” **๋ณ„๋„ `bun test` ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰**ํ•ด์•ผ ํ•œ๋‹ค.
400+
ํ…Œ์ŠคํŠธ๋Š” `handlers/`(ํ•ธ๋“ค๋Ÿฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ), `utils/`(์œ ํ‹ธ๋ฆฌํ‹ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ), `tests/`(Worker runtime smoke test์™€ ๊ต์ฐจ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ)๋กœ ๋‚˜๋‰œ๋‹ค. ๋ชจ๋“ˆ ๋ชจํ‚น์€ Vitest์˜ `vi.mock()`์„ ์‚ฌ์šฉํ•˜๊ณ , Worker runtime๊ณผ bindings๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” `cloudflare:test`์™€ `cloudflare:workers`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
398401

399402
```bash
400-
# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰ (๋‘ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋กœ)
401-
bun test handlers/ && bun test tests/
403+
# ์˜์กด์„ฑ ์„ค์น˜
404+
bun install
402405

403-
# ํŠน์ • ํŒŒ์ผ๋งŒ ์‹คํ–‰
404-
bun test handlers/webhooks.test.js
406+
# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰
407+
bun run test
408+
409+
# ๊ฐ์‹œ ๋ชจ๋“œ
410+
bun run test:watch
405411

406-
# ๊ฐ์‹œ ๋ชจ๋“œ (ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์žฌ์‹คํ–‰)
407-
bun test handlers/ --watch
412+
# ํŠน์ • ํŒŒ์ผ๋งŒ ์‹คํ–‰
413+
bun run test -- handlers/webhooks.test.js
408414
```
409415

410416
Bun ์„ค์น˜: https://bun.sh/docs/installation
@@ -413,11 +419,11 @@ Bun ์„ค์น˜: https://bun.sh/docs/installation
413419

414420
- ํ…Œ์ŠคํŠธ ํŒŒ์ผ์€ ๋Œ€์ƒ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— `*.test.js` ์ด๋ฆ„์œผ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
415421
- ์˜ˆ: `handlers/webhooks.js` โ†’ `handlers/webhooks.test.js`
416-
- `bun:test`์—์„œ ์ œ๊ณตํ•˜๋Š” API(`describe`, `it`, `expect`, `vi`)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
422+
- `vitest`์—์„œ ์ œ๊ณตํ•˜๋Š” API(`describe`, `it`, `expect`, `vi`, `beforeEach`)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
417423
- ์™ธ๋ถ€ ์˜์กด์„ฑ(`utils/github.js` ๋“ฑ)์€ `vi.mock()`์œผ๋กœ ๋Œ€์ฒดํ•˜๊ณ , `fetch`๋Š” `globalThis.fetch = vi.fn()...`๋กœ ์Šคํ…ํ•ฉ๋‹ˆ๋‹ค.
418424

419425
```javascript
420-
import { describe, it, expect, vi, beforeEach } from "bun:test";
426+
import { describe, it, expect, vi, beforeEach } from "vitest";
421427

422428
vi.mock("../utils/github.js", () => ({
423429
generateGitHubAppToken: vi.fn().mockResolvedValue("fake-token"),
@@ -449,7 +455,7 @@ describe("checkWeeks", () => {
449455

450456
### CI ์ž๋™ ์‹คํ–‰
451457

452-
`.github/workflows/integration.yaml`์ด ๋ชจ๋“  Pull Request์™€ `main` ๋ธŒ๋žœ์น˜ ํ‘ธ์‹œ์—์„œ `bun test handlers/`์™€ `bun test tests/`๋ฅผ ๊ฐ๊ฐ ๋ณ„๋„ ์Šคํ…์œผ๋กœ ์ž๋™ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด PR ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•˜๋ฏ€๋กœ, ๋จธ์ง€ ์ „์— ๋ฐ˜๋“œ์‹œ ํ†ต๊ณผ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
458+
`.github/workflows/integration.yaml`์ด ๋ชจ๋“  Pull Request์™€ `main` ๋ธŒ๋žœ์น˜ ํ‘ธ์‹œ์—์„œ `bun install` ๋‹ค์Œ `bun run test`๋ฅผ ์ž๋™ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด PR ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•˜๋ฏ€๋กœ, ๋จธ์ง€ ์ „์— ๋ฐ˜๋“œ์‹œ ํ†ต๊ณผ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
453459

454460
## ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ฐ€์ด๋“œ
455461

@@ -458,7 +464,7 @@ describe("checkWeeks", () => {
458464
1. **์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€**: `index.js`์˜ `fetch()` ํ•จ์ˆ˜์— ์ƒˆ๋กœ์šด pathname ๋ผ์šฐํŒ… ์ถ”๊ฐ€
459465
2. **ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜ ์ž‘์„ฑ**: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ (์˜ˆ: `handleCheckAllPrs`)
460466
3. **GitHub App ๊ถŒํ•œ ํ™•์ธ**: ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด ์ถ”๊ฐ€
461-
4. **ํ…Œ์ŠคํŠธ ์ž‘์„ฑ**: ํ•ธ๋“ค๋Ÿฌ ์˜†์— `*.test.js`๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  `bun test`๋กœ ํ†ต๊ณผ ํ™•์ธ (์œ„ "ํ…Œ์ŠคํŠธ" ์„น์…˜ ์ฐธ๊ณ )
467+
4. **ํ…Œ์ŠคํŠธ ์ž‘์„ฑ**: ํ•ธ๋“ค๋Ÿฌ ์˜†์— `*.test.js`๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  `bun run test`๋กœ ํ†ต๊ณผ ํ™•์ธ (์œ„ "ํ…Œ์ŠคํŠธ" ์„น์…˜ ์ฐธ๊ณ )
462468
5. **๋ฌธ์„œ ์—…๋ฐ์ดํŠธ**: AGENTS.md, README.md์— ์ƒˆ ๊ธฐ๋Šฅ ๋ฌธ์„œํ™”
463469
6. **๋กœ์ปฌ ์‹คํ–‰ ํ…Œ์ŠคํŠธ**: `wrangler dev`๋กœ ์‹ค์ œ ์—”๋“œํฌ์ธํŠธ ๋™์ž‘ ํ™•์ธ ํ›„ ๋ฐฐํฌ
464470

โ€ŽREADME.mdโ€Ž

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -176,30 +176,33 @@ curl -X POST http://localhost:8787/check-weeks \
176176

177177
### ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‹คํ–‰
178178

179-
์ด ํ”„๋กœ์ ํŠธ๋Š” **[Bun](https://bun.sh)์˜ ๋‚ด์žฅ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ**๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. `package.json`์ด๋‚˜ `node_modules`๊ฐ€ ์—†๋Š” ์ด์œ ๋Š” Bun์ด ๋Ÿฐํƒ€์ž„ยทํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆยท๋ชจํ‚น API(`vi.mock`, `vi.fn`)๋ฅผ ๋ชจ๋‘ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์–ด์„œ ๋ณ„๋„ ์„ค์น˜ ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
179+
์ด ํ”„๋กœ์ ํŠธ๋Š” **Cloudflare Workers Vitest integration**์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” Vitest๋กœ ์‹คํ–‰ํ•˜๊ณ , Worker ๋Ÿฐํƒ€์ž„๊ณผ ๋ฐ”์ธ๋”ฉ์ด ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” Cloudflare ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
180180

181181
```bash
182-
# Bun ์„ค์น˜ (์ตœ์ดˆ 1ํšŒ) โ€” https://bun.sh/docs/installation
183-
curl -fsSL https://bun.sh/install | bash
182+
# ์˜์กด์„ฑ ์„ค์น˜
183+
bun install
184184

185-
# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰ (๋‘ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋กœ)
186-
bun test handlers/ && bun test tests/
185+
# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰
186+
bun run test
187187

188-
# ํŠน์ • ํŒŒ์ผ๋งŒ ์‹คํ–‰
189-
bun test handlers/webhooks.test.js
188+
# ๊ฐ์‹œ ๋ชจ๋“œ
189+
bun run test:watch
190190

191-
# ๊ฐ์‹œ ๋ชจ๋“œ (ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์žฌ์‹คํ–‰)
192-
bun test handlers/ --watch
191+
# ํŠน์ • ํŒŒ์ผ๋งŒ ์‹คํ–‰
192+
bun run test -- handlers/webhooks.test.js
193193
```
194194

195-
ํ…Œ์ŠคํŠธ๋Š” ๋‘ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋‚˜๋‰˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:
195+
ํ…Œ์ŠคํŠธ๋Š” ์„ธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋‚˜๋‰˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:
196+
197+
- `handlers/*.test.js`: ํ•ธ๋“ค๋Ÿฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
198+
- `utils/*.test.js`: ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
199+
- `tests/*.test.js`: Worker runtime smoke test์™€ ๊ต์ฐจ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ
196200

197-
- `handlers/*.test.js`: ๋Œ€์ƒ ํŒŒ์ผ ์˜†์— ๋‘๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
198-
- `tests/*.test.js`: Bun `vi.mock()`์˜ ์ „์—ญ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ˆ„์ถœ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰ํ•˜๋Š” ํ…Œ์ŠคํŠธ (์˜ˆ: `subrequest-budget.test.js`)
201+
๋ชจ๋“ˆ ๋ชจํ‚น์€ Vitest์˜ `vi.mock()`์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Worker runtime๊ณผ bindings๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” `cloudflare:test`์™€ `cloudflare:workers`๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
199202

200203
์ž์„ธํ•œ ์ž‘์„ฑ ๊ทœ์น™๊ณผ ์˜ˆ์ œ๋Š” `AGENTS.md`์˜ "ํ…Œ์ŠคํŠธ" ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.
201204

202-
๋ชจ๋“  Pull Request์™€ `main` ๋ธŒ๋žœ์น˜ ํ‘ธ์‹œ์—์„œ `.github/workflows/integration.yaml`์ด ๋‘ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
205+
๋ชจ๋“  Pull Request์™€ `main` ๋ธŒ๋žœ์น˜ ํ‘ธ์‹œ์—์„œ `.github/workflows/integration.yaml`์ด `bun install` ๋‹ค์Œ `bun run test`๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
203206

204207
### ํ”„๋กœ๋•์…˜ ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœ
205208

0 commit comments

Comments
ย (0)