From 90384490979230e99085821fb0bf69bb58e5cf42 Mon Sep 17 00:00:00 2001 From: "k.hiro1818" Date: Sun, 21 Jun 2026 11:49:05 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix(label):=20rename=20ICPC=20=E5=9C=B0?= =?UTF-8?q?=E5=8C=BA=E4=BA=88=E9=81=B8=20to=20ICPC=20=E3=82=A2=E3=82=B8?= =?UTF-8?q?=E3=82=A2=E5=9C=B0=E5=8C=BA=20across=20display=20labels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Display-only string change; enum values, contest ID patterns, and English aria labels are unchanged. Co-Authored-By: Claude Sonnet 4.6 --- docs/dev-notes/2026-06-21/plan.md | 39 +++++++++++++++++++ .../contest-table/aoj_icpc_providers.test.ts | 6 +-- .../utils/contest-table/aoj_icpc_providers.ts | 4 +- .../contest_table_provider_groups.test.ts | 4 +- .../contest_table_provider_groups.ts | 4 +- src/lib/clients/index.ts | 2 +- src/lib/utils/contest.ts | 2 +- .../test_cases/contest_name_and_task_index.ts | 4 +- .../utils/test_cases/contest_name_labels.ts | 4 +- 9 files changed, 54 insertions(+), 15 deletions(-) create mode 100644 docs/dev-notes/2026-06-21/plan.md diff --git a/docs/dev-notes/2026-06-21/plan.md b/docs/dev-notes/2026-06-21/plan.md new file mode 100644 index 000000000..036224e09 --- /dev/null +++ b/docs/dev-notes/2026-06-21/plan.md @@ -0,0 +1,39 @@ +# ICPC 地区予選 → ICPC アジア地区 ラベル変更 + +## Context + +Issue #3680 に関連して、「ICPC 地区予選」の表示ラベルを「ICPC アジア地区」に変更する。国内予選(Prelim)は変更なし。表示ラベルの文字列置換のみで、ロジック・型・DB への影響はない。 + +## 変更対象 + +### プロダクションコード(4ファイル) + +| ファイル | 行 | 変更内容 | +| ------------------------------------------------------------------------- | ------- | ------------------------------------------------------------- | +| `src/lib/utils/contest.ts` | 738 | `Regional: ' 地区予選 '` → `' アジア地区 '` | +| `src/lib/clients/index.ts` | 77 | `'AOJ - ICPC 地区予選'` → `'AOJ - ICPC アジア地区'` | +| `src/features/tasks/utils/contest-table/aoj_icpc_providers.ts` | 80, 91 | title・label の `ICPC 地区予選` → `ICPC アジア地区` | +| `src/features/tasks/utils/contest-table/contest_table_provider_groups.ts` | 249-250 | groupName・buttonLabel の `ICPC 地区予選` → `ICPC アジア地区` | + +### テストコード(4ファイル) + +| ファイル | 行 | 変更内容 | +| ------------------------------------------------------------------------------ | ------------- | ----------------------------------------------- | +| `src/test/lib/utils/test_cases/contest_name_labels.ts` | 132, 140 | expected の `地区予選` → `アジア地区` | +| `src/test/lib/utils/test_cases/contest_name_and_task_index.ts` | 848, 883 | コメント・expected の `地区予選` → `アジア地区` | +| `src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts` | 696, 743, 792 | expected の `ICPC 地区予選` → `ICPC アジア地区` | +| `src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts` | 314, 316 | expected の `ICPC 地区予選` → `ICPC アジア地区` | + +## 手順 + +1. テストの期待値を先に変更(TDD: Red) +2. プロダクションコードを変更(Green) +3. `pnpm test:unit` で全テスト通過を確認 +4. `pnpm format` で整形 + +## 対象外 + +- `ContestType.AOJ_ICPC` enum 値:変更なし +- `ICPCRegional` contest ID パターン:AOJ のデータ由来のため変更なし +- ariaLabel `'Filter ICPC Asia Regional'`:英語で既に Asia を含んでおり変更不要 +- 国内予選(Prelim)関連:全て現状維持 diff --git a/src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts b/src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts index a18b3701f..552e853f6 100644 --- a/src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts +++ b/src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts @@ -693,7 +693,7 @@ describe('AojIcpcRegionalProvider', () => { describe('getMetadata', () => { test('returns correct title with year', () => { - expect(provider1998.getMetadata().title).toBe('ICPC 地区予選 1998'); + expect(provider1998.getMetadata().title).toBe('ICPC アジア地区 1998'); }); test('returns correct abbreviationName with year', () => { @@ -740,7 +740,7 @@ describe('AojIcpcRegionalProvider', () => { describe('getContestRoundLabel', () => { test('returns label with year', () => { - expect(provider1998.getContestRoundLabel('ICPCRegional1998')).toBe('ICPC 地区予選 1998'); + expect(provider1998.getContestRoundLabel('ICPCRegional1998')).toBe('ICPC アジア地区 1998'); }); }); @@ -789,7 +789,7 @@ describe('AojIcpcRegionalProvider', () => { const provider2024 = createRegionalProvider(2024); test('latest year 2024 returns correct metadata (12 problems, A–L)', () => { - expect(provider2024.getMetadata().title).toBe('ICPC 地区予選 2024'); + expect(provider2024.getMetadata().title).toBe('ICPC アジア地区 2024'); expect(provider2024.getMetadata().abbreviationName).toBe('icpcRegional2024'); }); diff --git a/src/features/tasks/utils/contest-table/aoj_icpc_providers.ts b/src/features/tasks/utils/contest-table/aoj_icpc_providers.ts index 6654b65e3..f7e3ed626 100644 --- a/src/features/tasks/utils/contest-table/aoj_icpc_providers.ts +++ b/src/features/tasks/utils/contest-table/aoj_icpc_providers.ts @@ -77,7 +77,7 @@ export class AojIcpcRegionalProvider extends ContestTableProviderBase { getMetadata(): ContestTableMetaData { return { - title: `ICPC 地区予選 ${this.year}`, + title: `ICPC アジア地区 ${this.year}`, abbreviationName: `icpcRegional${this.year}`, titleStyle: AOJ_ICPC_TITLE_STYLE, }; @@ -88,7 +88,7 @@ export class AojIcpcRegionalProvider extends ContestTableProviderBase { } getContestRoundLabel(_contestId: string): string { - return `ICPC 地区予選 ${this.year}`; + return `ICPC アジア地区 ${this.year}`; } override getTaskLabels(filtered: TaskResults): Record> { diff --git a/src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts b/src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts index 6e54b5cb3..96c7bbcf6 100644 --- a/src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts +++ b/src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts @@ -311,9 +311,9 @@ describe('prepareContestProviderPresets', () => { test('expects to create AojIcpcRegional preset correctly', () => { const group = prepareContestProviderPresets().AojIcpcRegional(); - expect(group.getGroupName()).toBe('ICPC 地区予選'); + expect(group.getGroupName()).toBe('ICPC アジア地区'); expect(group.getMetadata()).toEqual({ - buttonLabel: 'ICPC 地区予選', + buttonLabel: 'ICPC アジア地区', ariaLabel: 'Filter ICPC Asia Regional', }); expect(group.getSize()).toBe(ICPC_REGIONAL_LATEST_YEAR - ICPC_REGIONAL_OLDEST_YEAR + 1); // 27 diff --git a/src/features/tasks/utils/contest-table/contest_table_provider_groups.ts b/src/features/tasks/utils/contest-table/contest_table_provider_groups.ts index f2978e1b4..f19c84a09 100644 --- a/src/features/tasks/utils/contest-table/contest_table_provider_groups.ts +++ b/src/features/tasks/utils/contest-table/contest_table_provider_groups.ts @@ -246,8 +246,8 @@ export const prepareContestProviderPresets = () => { }, AojIcpcRegional: () => { - const group = new ContestTableProviderGroup('ICPC 地区予選', { - buttonLabel: 'ICPC 地区予選', + const group = new ContestTableProviderGroup('ICPC アジア地区', { + buttonLabel: 'ICPC アジア地区', ariaLabel: 'Filter ICPC Asia Regional', }); // Iterate from latest to oldest so the newest year's table renders on top. diff --git a/src/lib/clients/index.ts b/src/lib/clients/index.ts index 539e5bf09..1e4fa29f0 100644 --- a/src/lib/clients/index.ts +++ b/src/lib/clients/index.ts @@ -74,7 +74,7 @@ const importSources: Record Date: Sun, 21 Jun 2026 11:49:40 +0000 Subject: [PATCH 2/2] chore(dev-notes): remove ICPC label rename plan after completion Co-Authored-By: Claude Sonnet 4.6 --- docs/dev-notes/2026-06-21/plan.md | 39 ------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 docs/dev-notes/2026-06-21/plan.md diff --git a/docs/dev-notes/2026-06-21/plan.md b/docs/dev-notes/2026-06-21/plan.md deleted file mode 100644 index 036224e09..000000000 --- a/docs/dev-notes/2026-06-21/plan.md +++ /dev/null @@ -1,39 +0,0 @@ -# ICPC 地区予選 → ICPC アジア地区 ラベル変更 - -## Context - -Issue #3680 に関連して、「ICPC 地区予選」の表示ラベルを「ICPC アジア地区」に変更する。国内予選(Prelim)は変更なし。表示ラベルの文字列置換のみで、ロジック・型・DB への影響はない。 - -## 変更対象 - -### プロダクションコード(4ファイル) - -| ファイル | 行 | 変更内容 | -| ------------------------------------------------------------------------- | ------- | ------------------------------------------------------------- | -| `src/lib/utils/contest.ts` | 738 | `Regional: ' 地区予選 '` → `' アジア地区 '` | -| `src/lib/clients/index.ts` | 77 | `'AOJ - ICPC 地区予選'` → `'AOJ - ICPC アジア地区'` | -| `src/features/tasks/utils/contest-table/aoj_icpc_providers.ts` | 80, 91 | title・label の `ICPC 地区予選` → `ICPC アジア地区` | -| `src/features/tasks/utils/contest-table/contest_table_provider_groups.ts` | 249-250 | groupName・buttonLabel の `ICPC 地区予選` → `ICPC アジア地区` | - -### テストコード(4ファイル) - -| ファイル | 行 | 変更内容 | -| ------------------------------------------------------------------------------ | ------------- | ----------------------------------------------- | -| `src/test/lib/utils/test_cases/contest_name_labels.ts` | 132, 140 | expected の `地区予選` → `アジア地区` | -| `src/test/lib/utils/test_cases/contest_name_and_task_index.ts` | 848, 883 | コメント・expected の `地区予選` → `アジア地区` | -| `src/features/tasks/utils/contest-table/aoj_icpc_providers.test.ts` | 696, 743, 792 | expected の `ICPC 地区予選` → `ICPC アジア地区` | -| `src/features/tasks/utils/contest-table/contest_table_provider_groups.test.ts` | 314, 316 | expected の `ICPC 地区予選` → `ICPC アジア地区` | - -## 手順 - -1. テストの期待値を先に変更(TDD: Red) -2. プロダクションコードを変更(Green) -3. `pnpm test:unit` で全テスト通過を確認 -4. `pnpm format` で整形 - -## 対象外 - -- `ContestType.AOJ_ICPC` enum 値:変更なし -- `ICPCRegional` contest ID パターン:AOJ のデータ由来のため変更なし -- ariaLabel `'Filter ICPC Asia Regional'`:英語で既に Asia を含んでおり変更不要 -- 国内予選(Prelim)関連:全て現状維持