wip: Fixing axios mock failures
This commit is contained in:
Родитель
1b91ce81be
Коммит
a557f3500c
|
@ -2383,6 +2383,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
||||||
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="
|
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="
|
||||||
},
|
},
|
||||||
|
"@types/axios-mock-adapter": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/axios-mock-adapter/-/axios-mock-adapter-1.10.0.tgz",
|
||||||
|
"integrity": "sha512-Govyvy3cr8hsR6DcCoBjVMQhYyzkHdfU/hMgBw6ONOFuTrZTDxdE/rBR7Sz3qsGtVZABSK8/2rDekp5UwZ/V8A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"axios-mock-adapter": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/babel__core": {
|
"@types/babel__core": {
|
||||||
"version": "7.1.12",
|
"version": "7.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
|
||||||
|
@ -2586,6 +2595,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
|
||||||
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
|
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
|
||||||
},
|
},
|
||||||
|
"@types/nock": {
|
||||||
|
"version": "11.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/nock/-/nock-11.1.0.tgz",
|
||||||
|
"integrity": "sha512-jI/ewavBQ7X5178262JQR0ewicPAcJhXS/iFaNJl0VHLfyosZ/kwSrsa6VNQNSO8i9d8SqdRgOtZSOKJ/+iNMw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"nock": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "12.19.0",
|
"version": "12.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.0.tgz",
|
||||||
|
@ -3773,6 +3791,16 @@
|
||||||
"is-buffer": "^2.0.2"
|
"is-buffer": "^2.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"axios-mock-adapter": {
|
||||||
|
"version": "1.19.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz",
|
||||||
|
"integrity": "sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fast-deep-equal": "^3.1.3",
|
||||||
|
"is-buffer": "^2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"axobject-query": {
|
"axobject-query": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
|
||||||
|
@ -13167,6 +13195,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||||
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
|
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
|
||||||
},
|
},
|
||||||
|
"lodash.set": {
|
||||||
|
"version": "4.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
|
||||||
|
"integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"lodash.sortby": {
|
"lodash.sortby": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||||
|
@ -13920,6 +13954,35 @@
|
||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nock": {
|
||||||
|
"version": "13.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz",
|
||||||
|
"integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"debug": "^4.1.0",
|
||||||
|
"json-stringify-safe": "^5.0.1",
|
||||||
|
"lodash.set": "^4.3.2",
|
||||||
|
"propagate": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node-dir": {
|
"node-dir": {
|
||||||
"version": "0.1.17",
|
"version": "0.1.17",
|
||||||
"resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
|
"resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
|
||||||
|
@ -16097,6 +16160,12 @@
|
||||||
"reflect.ownkeys": "^0.2.0"
|
"reflect.ownkeys": "^0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"propagate": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"proto-list": {
|
"proto-list": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
|
||||||
|
|
|
@ -79,8 +79,8 @@
|
||||||
"release-web": "npm run build && npm run webpack:prod",
|
"release-web": "npm run build && npm run webpack:prod",
|
||||||
"release-ci": "bash ./scripts/build.sh",
|
"release-ci": "bash ./scripts/build.sh",
|
||||||
"release": "npm run build && npm run webpack:prod && electron-builder",
|
"release": "npm run build && npm run webpack:prod && electron-builder",
|
||||||
"pretest": "npx eslint 'src/**/*.ts*'",
|
"pretest": "npx eslint \"src/**/*.ts*\"",
|
||||||
"lintfix": "npx eslint 'src/**/*.ts*' --fix",
|
"lintfix": "npx eslint \"src/**/*.ts*\" --fix",
|
||||||
"test": "react-scripts test --env=jsdom --silent",
|
"test": "react-scripts test --env=jsdom --silent",
|
||||||
"test:ci": "cross-env CI=true npm run test",
|
"test:ci": "cross-env CI=true npm run test",
|
||||||
"test:coverage": "npm run test -- --coverage",
|
"test:coverage": "npm run test -- --coverage",
|
||||||
|
@ -105,10 +105,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^5.5.0",
|
"@fortawesome/fontawesome-free": "^5.5.0",
|
||||||
|
"@types/axios-mock-adapter": "^1.10.0",
|
||||||
"@types/dotenv": "^6.1.0",
|
"@types/dotenv": "^6.1.0",
|
||||||
"@types/enzyme": "^3.1.15",
|
"@types/enzyme": "^3.1.15",
|
||||||
"@types/jest": "23.3.9",
|
"@types/jest": "23.3.9",
|
||||||
"@types/json2csv": "^4.4.0",
|
"@types/json2csv": "^4.4.0",
|
||||||
|
"@types/nock": "^11.1.0",
|
||||||
"@types/node": "12.19.0",
|
"@types/node": "12.19.0",
|
||||||
"@types/react": "16.7.6",
|
"@types/react": "16.7.6",
|
||||||
"@types/react-dom": "16.0.9",
|
"@types/react-dom": "16.0.9",
|
||||||
|
@ -119,6 +121,7 @@
|
||||||
"@types/redux-logger": "^3.0.6",
|
"@types/redux-logger": "^3.0.6",
|
||||||
"@types/redux-mock-store": "^1.0.0",
|
"@types/redux-mock-store": "^1.0.0",
|
||||||
"@types/snapsvg": "^0.4.35",
|
"@types/snapsvg": "^0.4.35",
|
||||||
|
"axios-mock-adapter": "^1.19.0",
|
||||||
"cross-env": "^5.2.0",
|
"cross-env": "^5.2.0",
|
||||||
"electron": "^10.1.5",
|
"electron": "^10.1.5",
|
||||||
"electron-builder": "^22.9.1",
|
"electron-builder": "^22.9.1",
|
||||||
|
@ -127,6 +130,7 @@
|
||||||
"foreman": "^3.0.1",
|
"foreman": "^3.0.1",
|
||||||
"jest-enzyme": "^7.0.1",
|
"jest-enzyme": "^7.0.1",
|
||||||
"jquery": "^3.3.1",
|
"jquery": "^3.3.1",
|
||||||
|
"nock": "^13.0.4",
|
||||||
"node-sass": "^4.14.1",
|
"node-sass": "^4.14.1",
|
||||||
"popper.js": "^1.14.6",
|
"popper.js": "^1.14.6",
|
||||||
"redux-immutable-state-invariant": "^2.1.0",
|
"redux-immutable-state-invariant": "^2.1.0",
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import axios, { AxiosResponse } from "axios";
|
import axios from "axios";
|
||||||
import HtmlFileReader from "./htmlFileReader";
|
import HtmlFileReader from "./htmlFileReader";
|
||||||
import { AssetService } from "../services/assetService";
|
import { AssetService } from "../services/assetService";
|
||||||
import { TFRecordsBuilder, FeatureType } from "../providers/export/tensorFlowRecords/tensorFlowBuilder";
|
import { TFRecordsBuilder, FeatureType } from "../providers/export/tensorFlowRecords/tensorFlowBuilder";
|
||||||
import MockFactory from "./mockFactory";
|
import MockFactory from "./mockFactory";
|
||||||
import { AssetState, IAsset } from "../models/applicationState";
|
import { AssetState, IAsset } from "../models/applicationState";
|
||||||
|
import nock from 'nock';
|
||||||
|
|
||||||
describe("Html File Reader", () => {
|
describe("Html File Reader", () => {
|
||||||
const assetTestCache = new Map<string, IAsset>();
|
const assetTestCache = new Map<string, IAsset>();
|
||||||
|
@ -57,62 +58,41 @@ describe("Html File Reader", () => {
|
||||||
describe("Download asset binaries", () => {
|
describe("Download asset binaries", () => {
|
||||||
it("Downloads a blob from the asset path", async () => {
|
it("Downloads a blob from the asset path", async () => {
|
||||||
const asset = AssetService.createAssetFromFilePath("https://server.com/image.jpg");
|
const asset = AssetService.createAssetFromFilePath("https://server.com/image.jpg");
|
||||||
axios.get = jest.fn((url, config) => {
|
nock("https://server.com")
|
||||||
return Promise.resolve<AxiosResponse>({
|
.get("/image.jpg")
|
||||||
config,
|
.reply(200, new Blob(["Some binary data"]));
|
||||||
headers: null,
|
|
||||||
status: 200,
|
|
||||||
statusText: "OK",
|
|
||||||
data: new Blob(["Some binary data"]),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const result = await HtmlFileReader.getAssetBlob(asset);
|
const result = await HtmlFileReader.getAssetBlob(asset);
|
||||||
expect(result).not.toBeNull();
|
expect(result).not.toBeNull();
|
||||||
expect(result).toBeInstanceOf(Blob);
|
expect(result).toBeInstanceOf(Blob);
|
||||||
expect(axios.get).toBeCalledWith(asset.path, { responseType: "blob" });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Rejects the promise when request receives non 200 result", async () => {
|
it("Rejects the promise when request receives non 200 result", async () => {
|
||||||
const asset = AssetService.createAssetFromFilePath("https://server.com/image.jpg");
|
const asset = AssetService.createAssetFromFilePath("https://server.com/image.jpg");
|
||||||
axios.get = jest.fn((url, config) => {
|
nock("https://server.com").get("/image.jpg").reply(404, null);
|
||||||
return Promise.resolve<AxiosResponse>({
|
|
||||||
config,
|
|
||||||
headers: null,
|
|
||||||
status: 404,
|
|
||||||
statusText: "Not Found",
|
|
||||||
data: null,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
await expect(HtmlFileReader.getAssetBlob(asset)).rejects.not.toBeNull();
|
await expect(HtmlFileReader.getAssetBlob(asset)).rejects.not.toBeNull();
|
||||||
expect(axios.get).toBeCalledWith(asset.path, { responseType: "blob" });
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Download asset binaries array", () => {
|
describe("Download asset binaries array", () => {
|
||||||
beforeEach(() => {
|
|
||||||
axios.get = jest.fn((url, config) => {
|
|
||||||
return Promise.resolve<AxiosResponse>({
|
|
||||||
config,
|
|
||||||
headers: null,
|
|
||||||
status: 200,
|
|
||||||
statusText: "OK",
|
|
||||||
data: [1, 2, 3],
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Downloads a byte array from the asset path", async () => {
|
it("Downloads a byte array from the asset path", async () => {
|
||||||
const asset = AssetService.createAssetFromFilePath("https://server.com/image.jpg");
|
const imagePath = "https://server.com/image.jpg";
|
||||||
|
nock("https://server.com")
|
||||||
|
.get("/image.jpg")
|
||||||
|
.reply(200, [1, 2, 3]);
|
||||||
|
|
||||||
|
const asset = AssetService.createAssetFromFilePath(imagePath);
|
||||||
const result = await HtmlFileReader.getAssetArray(asset);
|
const result = await HtmlFileReader.getAssetArray(asset);
|
||||||
expect(result).not.toBeNull();
|
expect(result).not.toBeNull();
|
||||||
expect(result).toBeInstanceOf(ArrayBuffer);
|
expect(result).toBeInstanceOf(ArrayBuffer);
|
||||||
expect(axios.get).toBeCalledWith(asset.path, { responseType: "blob" });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Test non valid asset type", async () => {
|
it("Test non valid asset type", async () => {
|
||||||
const imageAsset = AssetService.createAssetFromFilePath("https://server.com/image.notsupported");
|
const imagePath = "https://server.com/image.notsupported";
|
||||||
|
axiosMock.onGet(imagePath).reply(200, [1, 2, 3]);
|
||||||
|
|
||||||
|
const imageAsset = AssetService.createAssetFromFilePath(imagePath);
|
||||||
try {
|
try {
|
||||||
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -128,23 +108,16 @@ describe("Html File Reader", () => {
|
||||||
height: 1080,
|
height: 1080,
|
||||||
};
|
};
|
||||||
|
|
||||||
axios.get = jest.fn((url, config) => {
|
const builder = new TFRecordsBuilder();
|
||||||
const builder = new TFRecordsBuilder();
|
builder.addFeature("image/height", FeatureType.Int64, expected.height);
|
||||||
builder.addFeature("image/height", FeatureType.Int64, expected.height);
|
builder.addFeature("image/width", FeatureType.Int64, expected.width);
|
||||||
builder.addFeature("image/width", FeatureType.Int64, expected.width);
|
const buffer = builder.build();
|
||||||
const buffer = builder.build();
|
const tfrecords = TFRecordsBuilder.buildTFRecords([buffer]);
|
||||||
const tfrecords = TFRecordsBuilder.buildTFRecords([buffer]);
|
|
||||||
|
|
||||||
return Promise.resolve<AxiosResponse>({
|
const assetPath = "https://server.com/image.tfrecord"
|
||||||
config,
|
axiosMock.onGet(assetPath).reply(200, tfrecords);
|
||||||
headers: null,
|
|
||||||
status: 200,
|
|
||||||
statusText: "OK",
|
|
||||||
data: tfrecords,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const imageAsset = AssetService.createAssetFromFilePath("https://server.com/image.tfrecord");
|
const imageAsset = AssetService.createAssetFromFilePath(assetPath);
|
||||||
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
||||||
|
|
||||||
expect(result.width).toEqual(expected.width);
|
expect(result.width).toEqual(expected.width);
|
||||||
|
@ -159,23 +132,16 @@ describe("Html File Reader", () => {
|
||||||
height: 1080,
|
height: 1080,
|
||||||
};
|
};
|
||||||
|
|
||||||
axios.get = jest.fn((url, config) => {
|
const builder = new TFRecordsBuilder();
|
||||||
const builder = new TFRecordsBuilder();
|
builder.addFeature("image/height", FeatureType.Int64, expected.height);
|
||||||
builder.addFeature("image/height", FeatureType.Int64, expected.height);
|
builder.addFeature("image/width", FeatureType.Int64, expected.width);
|
||||||
builder.addFeature("image/width", FeatureType.Int64, expected.width);
|
const buffer = builder.build();
|
||||||
const buffer = builder.build();
|
const tfrecords = TFRecordsBuilder.buildTFRecords([buffer]);
|
||||||
const tfrecords = TFRecordsBuilder.buildTFRecords([buffer]);
|
|
||||||
|
|
||||||
return Promise.resolve<AxiosResponse>({
|
const assetPath = "https://server.com/image.tfrecord"
|
||||||
config,
|
axiosMock.onGet(assetPath).reply(200, tfrecords);
|
||||||
headers: null,
|
|
||||||
status: 200,
|
|
||||||
statusText: "OK",
|
|
||||||
data: tfrecords,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const imageAsset = AssetService.createAssetFromFilePath("https://server.com/image.tfrecord");
|
const imageAsset = AssetService.createAssetFromFilePath(assetPath);
|
||||||
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
const result = await HtmlFileReader.readAssetAttributes(imageAsset);
|
||||||
|
|
||||||
expect(result.width).toEqual(expected.width);
|
expect(result.width).toEqual(expected.width);
|
||||||
|
|
|
@ -2,6 +2,7 @@ import axios from "axios";
|
||||||
import { BingImageSearch, IBingImageSearchOptions, BingImageSearchAspectRatio } from "./bingImageSearch";
|
import { BingImageSearch, IBingImageSearchOptions, BingImageSearchAspectRatio } from "./bingImageSearch";
|
||||||
import { IAsset, AssetType, AssetState } from "../../models/applicationState";
|
import { IAsset, AssetType, AssetState } from "../../models/applicationState";
|
||||||
import MD5 from "md5.js";
|
import MD5 from "md5.js";
|
||||||
|
import MockAdapter from "axios-mock-adapter";
|
||||||
|
|
||||||
describe("Bing Image Search", () => {
|
describe("Bing Image Search", () => {
|
||||||
const options: IBingImageSearchOptions = {
|
const options: IBingImageSearchOptions = {
|
||||||
|
@ -18,26 +19,21 @@ describe("Bing Image Search", () => {
|
||||||
{ contentUrl: "http://images.com/image4.jpg" },
|
{ contentUrl: "http://images.com/image4.jpg" },
|
||||||
];
|
];
|
||||||
|
|
||||||
axios.get = jest.fn(() => {
|
const axiosMock = new MockAdapter(axios);
|
||||||
return Promise.resolve({
|
|
||||||
data: {
|
|
||||||
value: assets,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it("calls the Bing image search API", async () => {
|
it("calls the Bing image search API", async () => {
|
||||||
// tslint:disable-next-line:max-line-length
|
// tslint:disable-next-line:max-line-length
|
||||||
const expectedUrl = `https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=${options.query}&aspect=${options.aspectRatio}`;
|
const expectedUrl = `https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=${options.query}&aspect=${options.aspectRatio}`;
|
||||||
|
axiosMock.onGet(expectedUrl).reply(200, { value: assets, });
|
||||||
|
|
||||||
const expectedHeaders = {
|
const expectedHeaders = {
|
||||||
headers: {
|
"Ocp-Apim-Subscription-Key": options.apiKey,
|
||||||
"Ocp-Apim-Subscription-Key": options.apiKey,
|
"Accept": "application/json",
|
||||||
"Accept": "application/json",
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
await provider.getAssets();
|
await provider.getAssets();
|
||||||
expect(axios.get).toBeCalledWith(expectedUrl, expectedHeaders);
|
expect(axiosMock.history.get[0].url).toEqual(expectedUrl);
|
||||||
|
expect(axiosMock.history.get[0].headers).toEqual(expectedHeaders);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("returns parsed image assets", async () => {
|
it("returns parsed image assets", async () => {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче