Zenn
Open4

メモ書き

ごま野しぐれごま野しぐれ

エイリアスを設定する方法

二つ設定することでうまく動く

  1. tsconfig.json
tsconfig.json
{
  "compilerOptions": {
    "paths": {
      "@/*": ["src/*"]
    },
    }
}

これでnext.js側は大丈夫。vitest側は以下で設定する

vitest.config.ts
export default defineConfig({
  test: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
});
ごま野しぐれごま野しぐれ

Vitestを回していたら、突然FirebaseAuthErrorがでてきた!

きちんとメソッドをモックしていたはずなのに、突然具体的なエラーがでてきてしまった。
原因はディレクトリを整理したものの、モックの対象ファイルの指定が変更されていなかったから。
今後はすぐに気づけるように以下をつけておくことにした。

test.ts
import { describe, expect, it, vi } from "vitest";
import {originalmethod } from "someLiblary";
  it("きちんとモックされていることを確認する", () => {
    expect(vi.isMockFunction(originalmethod)).toBe(true);
  });
ごま野しぐれごま野しぐれ

検証ライブラリ

色々調べた結果、Valibotを使うことにした。(メンテナンスが直近1ヵ月の間なされていて、スター数が多かったため)

既定値を作る方法

v.optional(v.string(),"既定値")

オプショナルの第二引数に既定値を書いてやるとデフォルトを設定できる。

強制的に上書きする

  updatedAt: v.pipe(
    v.optional(v.any()),
    v.transform(() => "上書きの値"),
  ),

pipeを使って、transformを起動して上書き。updatedAtなど、なにが入ってても必ずサーバー時刻を設定したいものとか。

作成者以外のコメントは許可されていません