気まぐれメモランダム / でたらめフィードバック

React単体テスト実行時のSVGコンポーネント警告解消方法(vite + vitest編)

公開:

React + vite + vitest(+ Happy DOM)のフロントエンドプロジェクトに初挑戦、SVGの参照にReactコンポーネントとしてのインポートを可能にするvite用プラグインvite-plugin-svgr(実体はSVGR)を利用したところ、vitest実行で次の警告が報告されました。

Warning: </assets/icons/App.svg?react /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.

実害はありませんがノイズではあるので、解消を試みて次で解決できました。

  • ユニットテスト実行時の置き換え用ダミーコンポーネント定義を任意の場所(jestのマナーに従うなら src/__mock__/あたり)に保存します
const Dummy = () => <span />
export default Dummy
  • SVGの参照をダミーコンポーネントに置き換えるエイリアスをvitestの設定で定義します
test: {
  alias: [
    {
      find: /.*\.svg/,
      replacement: path.resolve(__dirname, './src/__mock__/svg.tsx'),
    },
  ],
},

モジュール解決まわりの設定はjestとvitestで大きく異なり、vitestに関する情報はWeb上にあまり見あたらなかったのでメモしておく次第です。参考になりましたら幸いです。

私が参考したWebページは次になります。

関連コンテンツ

Pick up work

最近のエントリ

アーカイブ

ブログ情報