JestでDynamoDBのテストする方法を調べると、Jest公式のドキュメントの Using with DynamoDB が見つかります。「めっちゃ便利!」と思って進めたのですが、M1 Macの場合はちょっと一工夫必要だったので、その問題と解決策を書こうと思います。

問題

ドキュメント通りに進めて、jestを実行すると以下のようなエラーが発生します。

重大: [sqlite] SQLiteQueue[]: error running job queue
com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: Can't load library: /private/var/folders/5c/h19nr7xj51l7rgbj889mc1y00000gn/T/dynamodb-local/DynamoDBLocal_lib/libsqlite4java-osx.dylib

ざっくり言うと、jest-dynamodb は内部的にsqlite4javaというライブラリを使っているらしく、これが x86_64 にしか対応してないようです。M1 Macを使っている方だと、僕のように ARM版のJavaをインストールしている方も多いと思いますが、そうすると sqlite4javaを実行できないということっぽいです。

なので、解決法としては2通り考えられます。


全文はこちら:M1 Macのローカルでjest-dynamodbを使ってテストする

著者:@Michinosuke