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通り考えられます。
…