Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

Jestを実行したときに Object.values の記述箇所で TypeError: Cannot convert undefined or null to object at Function.values (<anonymous>) になったので修正する

解決したいこと

HOGE は定数で import しているのに、以下のような感じでテストが失敗しました。
このテストが失敗しているファイルを example.tsx とします。

  ● Test suite failed to run

    TypeError: Cannot convert undefined or null to object
        at Function.values (<anonymous>)

      30 |
      31 |
    > 32 | const hogeFieldOptions = Object.values(HOGE)
         |                                ^

ディレクトリとファイルの構成

問題の example.tsx は以下のようなディレクトリに格納されています。

./
├── const.ts
├── example.tsx
├── index.ts
└── types.ts

index.ts の記述内容

index.ts は他のディレクトリから import しやすいように、以下のようにまとめて export しています。

export * from './const'
export * from './example'
export * from './types'

今回修正できた方法

テストが失敗していた example.tsx は、以下のような感じで index.ts から定数 HOGEtype Foo を import していましたが、

import {
  HOGE,
  type Foo,
} from '.'

以下のように分けたら成功するようになりました。

import {
  HOGE,
} from './const'

import {
  type Foo,
} from './types'

Jestの実行環境が '.' という記述には対応していなかったんでしょうかね...。