Amplifyのローカルモック機能でREST APIはモックできない
タイトルで言いたいことは全部言ってしまったので解説を書きます。
AmplifyでAPIを追加するにはamplify add apiコマンドを使うことでGraphQLかRESTかを選んで追加できます。
ローカル環境でこのAPIをテストするにはamplify mock apiコマンドを使います*1。
しかしこのコマンド、GraphQLしかモックできません。
GraphQL APIを追加せずに、REST APIをモックしようとすると以下のようなエラーが出ます。
Failed to start API Mocking. Running cleanup tasks.
TypeError: Cannot read property 'stop' of undefined
at APITest.stop (/snapshot/repo/build/node_modules/amplify-util-mock/lib/api/api.js:187:33)
at APITest.start (/snapshot/repo/build/node_modules/amplify-util-mock/lib/api/api.js:150:18)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async start (/snapshot/repo/build/node_modules/amplify-util-mock/lib/api/index.js:18:5)
at async Object.run (/snapshot/repo/build/node_modules/amplify-util-mock/lib/commands/mock/api.js:21:5)
at async Object.executeAmplifyCommand (/snapshot/repo/build/node_modules/amplify-util-mock/lib/amplify-plugin-index.js:47:3)
at async executePluginModuleCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:142:5)
at async executeCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:40:9)
at async Object.run (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/index.js:117:5)
このエラーでは何が起きているのかわかりませんね。
これは作成したモックを、途中で発生したエラーにより片付けようとしたときにさらにエラーが発生してしまい、別のエラーが表示されてしまっているためです。内部的には MockProcessFault: Failed to start API Mocking.. Reason: No AppSync API is added to the project というエラーが出ています。
とりあえず正しいエラーを表示するようなPull Requestを出しておきました。そのうち直ると思います(直れ)。