Skip to content

test: createScanAction.test.ts の vi.fn() typing を統一 (#238)#251

Merged
ymnao merged 1 commit into
mainfrom
feature/vi-fn-typing-unify-#238
Jun 27, 2026
Merged

test: createScanAction.test.ts の vi.fn() typing を統一 (#238)#251
ymnao merged 1 commit into
mainfrom
feature/vi-fn-typing-unify-#238

Conversation

@ymnao

@ymnao ymnao commented Jun 27, 2026

Copy link
Copy Markdown
Owner

概要

src/stores/createScanAction.test.ts の 6 箇所の generic 未指定 vi.fn() を、既に統一されている vi.fn<(label: string) => Promise<string[]>>() または vi.fn<() => Promise<string[]>>() 形式に揃える typing 統一。実害なし、test の typing 一貫性のみ。

関連 Issue

closes #238

移行 Stage

(該当 stage なし — test infrastructure 整備)

  • Stage 0: 雛形 + フロント表示確認
  • Stage 1: ファイル I/O
  • Stage 2: ワークスペース・ファイルツリー・ファイル監視
  • Stage 3: 全文検索(ripgrep sidecar)
  • Stage 4: Git Sync
  • Stage 5: OGP / PDF / アップデート
  • Stage 6: 仕上げ・配布・切り替え

変更内容

  • src/stores/createScanAction.test.ts の 6 箇所 (L33, L51, L148, L181, L202, L219) の vi.fn() (generic 未指定) を vi.fn<Signature>() 形式に統一
    • L33, L148, L181: <(label: string) => Promise<string[]>> (引数あり、createScanAction<TestState, [string], string[]> 対応)
    • L51, L202, L219: <() => Promise<string[]>> (引数なし、createScanAction<TestState, [], string[]> 対応)
  • 既存統一済 3 sites (L72, L108, L137) と統一形式が揃う

動作確認

  • vitest run src/stores/createScanAction.test.ts で 8 ケース全 pass
  • tsc --noEmit 3 config clean (tsconfig.node.json / tsconfig.web.json / tsconfig.e2e.json)
  • biome check src/stores/createScanAction.test.ts clean
  • grep "vi\.fn()" src/stores/createScanAction.test.ts で hit 0 (統一済)
  • /code-review medium (8 angles) clean
  • /simplify 2 回実行 (pre/post-commit): 採用 0 件

スクリーンショット

(UI 変更なし)

補足

  • Issue 本文では「1 件だけ generic 未指定」とあるが、実態は 6 件未指定 / 3 件指定済。要件文「他テストと統一」に従い 6 箇所すべて統一
  • /simplify post-commit で次セッション候補として記録した altitude 指摘: src/stores/createScanAction.ts:15 の inline 型 (...args: TArgs) => Promise<TResult>export type ScanApi<TArgs, TResult> として alias 化 → test と production contract の named 参照統一が可能。本 PR は scope 拡大で見送り、別 issue 候補として残置

`src/stores/createScanAction.test.ts` の 6 箇所の generic 未指定 `vi.fn()`
を、既に統一されている `vi.fn<(label: string) => Promise<string[]>>()`
または `vi.fn<() => Promise<string[]>>()` 形式に揃える。

修正対象:
- L33, L148, L181: `(label: string) => Promise<string[]>` (引数あり)
- L51, L202, L219: `() => Promise<string[]>` (引数なし)

実害なし、test の typing 一貫性のみ。8 ケース全 pass + typecheck clean。
@ymnao ymnao merged commit 0faf6ef into main Jun 27, 2026
9 checks passed
@ymnao ymnao deleted the feature/vi-fn-typing-unify-#238 branch June 27, 2026 14:17
ymnao added a commit that referenced this pull request Jun 28, 2026
…t> 型として export (#255) (#256)

`CreateScanActionOptions.api` field の inline thunked signature
`() => (...args: TArgs) => Promise<TResult>` を named type alias
`ScanApi<TArgs extends unknown[], TResult>` として切り出し export。

- 型の意図 (thunk 経由で実 API 関数を返す理由) を docstring 付きで明示
- 将来 scan 系 helper を増やした際の参照点を確保
- caller (`src/stores/backlink.ts` / `src/stores/wikilink.ts`) と test
  (`createScanAction.test.ts`) は generic 推論で互換、変更不要

Option A (最小変更、createScanAction.ts のみ) を採用。Option B (caller
サイトでも `ScanApi` 注釈を強制) は `createScanAction<...>` の generic
で既に型推論が機能するため冗長で skip。

PR #251 (createScanAction.test.ts の vi.fn() typing 統一) の /simplify
pass 2 副産物として発見。

Refs #255
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: createScanAction.test.ts の vi.fn().mockResolvedValue typing を統一

1 participant