2

Zapier の CLI でアクションをテストするコードを書いています。response.status == 200 or 201;ここで、 API 応答コードが 200 または 201 であることを確認するなどの条件をもう 1 つ追加します。

どうすればいいですか?応答をログに記録すると、API が返す JSON オブジェクト全体が返されます。

describe("contact create", () => {
  it("should create a contact", done => {
    const bundle = {
      inputData: {
        firstName: "Test",
        lastName: "Contact",
        email: "Contact@test.com",
        mobileNumber: "+12125551234",
        type: "contact"
      }
    };
    appTester(App.creates.contact.operation.perform, bundle)
      .then(response => {

        // Need one more condition whether response status is 200 or 201.

        response.should.not.be.an.Array();
        response.should.have.property('id');
        done();
      })
      .catch(done);
  });
});

4

1 に答える 1

2

appTesterメソッドの結果を返しますがperform、これは API 応答ではありません。これは、Zapier に戻されるデータです。

最善の方法は、次のような行を に追加することですperform

// after your `z.request`
if (!(response.status === 200 || response.status === 201)) {
  throw new Error('need a 200/201 response')
}

これにより、必要な応答を正確に取得できます。response.throwForStatus()ただし、エラー コードではないことを確認するために a を追加し、正確に 200/201 であるかどうかを心配する必要はありません。

于 2019-09-02T20:43:04.730 に答える