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を出しておきました。そのうち直ると思います(直れ)。