webdriverio-automation
Version:
WebdriverIO-Automation android ios project
36 lines (30 loc) • 1.49 kB
text/typescript
import chai from "chai";
import { expect } from "chai";
import * as path from "path";
import axios, { AxiosResponse } from "axios";
import chaiResponseValidator from "chai-openapi-response-validator";
import * as formData from "../../../fixtures/FormData.json";
const url: string = "https://dxp-test.kaxsdc.com/formAnalytics/";
const okStatusCode: number = 200;
const badRequestStatusCode: number = 400;
describe("Post Device Analytical data", () => {
beforeEach("Defines yaml file to use", () => {
chai.use(chaiResponseValidator(path.resolve("./openapi.yaml")));
});
it("should verify successful POST request and satisfy openAPI spec for 400 response", async () => {
const response: AxiosResponse = await axios.post(url, { });
expect(response).to.satisfyApiSpec;
expect(response.status).to.equal(okStatusCode);
expect(response.statusText).to.equal("OK");
expect(response.data.statusCode).to.equal(badRequestStatusCode);
expect(response.data.body).to.contain("failure");
});
it("should verify successful POST request and satisfy openAPI spec for 200 response", async () => {
const response: AxiosResponse = await axios.post(url, formData);
expect(response).to.satisfyApiSpec;
expect(response.status).to.equal(okStatusCode);
expect(response.statusText).to.equal("OK");
expect(response.data.statusCode).to.equal(okStatusCode);
expect(response.data.body).to.contain("success");
});
});