Reduce duplication in the test code
This commit is contained in:
parent
10b3171b9d
commit
b2f84b51c8
2 changed files with 33 additions and 89 deletions
|
@ -3,6 +3,11 @@ import { afterEach, describe, expect, it, vi } from "vitest";
|
|||
|
||||
import { FileAPL, loadDataFromFile, saveDataToFile } from "./fileAPL";
|
||||
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
describe("APL", () => {
|
||||
describe("FileAPL", () => {
|
||||
describe("get", () => {
|
||||
|
@ -11,11 +16,6 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Returns auth data for existing domain", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
|
||||
|
@ -25,11 +25,6 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Returns undefined for unknown domain", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
|
||||
|
@ -45,11 +40,6 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Should override file when called with known domain", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
const spyWriteFile = vi.spyOn(fsPromises, "writeFile").mockResolvedValue();
|
||||
|
@ -62,11 +52,6 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Should not delete data when called with unknown domain", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
|
||||
|
@ -86,11 +71,6 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Should return list with one item when auth data are existing", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
|
||||
|
@ -118,15 +98,9 @@ describe("APL", () => {
|
|||
|
||||
it("Save existing auth data to file", async () => {
|
||||
const spyWriteFile = vi.spyOn(fsPromises, "writeFile").mockResolvedValue();
|
||||
await saveDataToFile("test.json", { domain: "example.com", token: "example-token" });
|
||||
await saveDataToFile("test.json", stubAuthData);
|
||||
|
||||
expect(spyWriteFile).toBeCalledWith(
|
||||
"test.json",
|
||||
JSON.stringify({
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
})
|
||||
);
|
||||
expect(spyWriteFile).toBeCalledWith("test.json", JSON.stringify(stubAuthData));
|
||||
});
|
||||
|
||||
it("Save empty file when no auth data provided", async () => {
|
||||
|
@ -151,10 +125,6 @@ describe("APL", () => {
|
|||
|
||||
it("Load existing auth data", async () => {
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
expect(await loadDataFromFile("test.json")).toStrictEqual(stubAuthData);
|
||||
});
|
||||
|
@ -167,19 +137,19 @@ describe("APL", () => {
|
|||
|
||||
it("Should return undefined when auth token is missing", async () => {
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
const stubAuthData = {
|
||||
const stubInvalidAuthData = {
|
||||
domain: "example.com",
|
||||
};
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubInvalidAuthData));
|
||||
expect(await loadDataFromFile("test.json")).toBe(undefined);
|
||||
});
|
||||
|
||||
it("Should return undefined when domain is missing", async () => {
|
||||
vi.spyOn(fsPromises, "access").mockResolvedValue();
|
||||
const stubAuthData = {
|
||||
const stubInvalidAuthData = {
|
||||
token: "token",
|
||||
};
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubAuthData));
|
||||
vi.spyOn(fsPromises, "readFile").mockResolvedValue(JSON.stringify(stubInvalidAuthData));
|
||||
expect(await loadDataFromFile("test.json")).toBe(undefined);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,6 +8,16 @@ import {
|
|||
VercelAPL,
|
||||
} from "./vercelAPL";
|
||||
|
||||
const aplConfig = {
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
};
|
||||
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
describe("APL", () => {
|
||||
describe("VercelAPL", () => {
|
||||
describe("constructor", () => {
|
||||
|
@ -31,18 +41,12 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Constructor with config values", async () => {
|
||||
expect(
|
||||
() =>
|
||||
new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
})
|
||||
).not.toThrow();
|
||||
expect(() => new VercelAPL(aplConfig)).not.toThrow();
|
||||
});
|
||||
|
||||
it("Constructor with config values from environment variables", async () => {
|
||||
process.env[SALEOR_REGISTER_APP_URL] = "http://example.com";
|
||||
process.env[SALEOR_DEPLOYMENT_TOKEN] = "token";
|
||||
process.env[SALEOR_REGISTER_APP_URL] = aplConfig.registerAppURL;
|
||||
process.env[SALEOR_DEPLOYMENT_TOKEN] = aplConfig.deploymentToken;
|
||||
|
||||
expect(() => new VercelAPL()).not.toThrow();
|
||||
});
|
||||
|
@ -56,47 +60,28 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Read existing auth data", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
process.env[TOKEN_VARIABLE_NAME] = stubAuthData.token;
|
||||
process.env[DOMAIN_VARIABLE_NAME] = stubAuthData.domain;
|
||||
|
||||
const apl = new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
});
|
||||
const apl = new VercelAPL();
|
||||
|
||||
expect(await apl.get(stubAuthData.domain)).toStrictEqual(stubAuthData);
|
||||
});
|
||||
|
||||
it("Return undefined when unknown domain requested", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
process.env[TOKEN_VARIABLE_NAME] = stubAuthData.token;
|
||||
process.env[DOMAIN_VARIABLE_NAME] = stubAuthData.domain;
|
||||
|
||||
const apl = new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
});
|
||||
const apl = new VercelAPL(aplConfig);
|
||||
|
||||
expect(await apl.get("unknown-domain.example.com")).toBe(undefined);
|
||||
});
|
||||
|
||||
it("Return undefined when no data is defined", async () => {
|
||||
process.env[TOKEN_VARIABLE_NAME] = undefined;
|
||||
process.env[DOMAIN_VARIABLE_NAME] = undefined;
|
||||
delete process.env[TOKEN_VARIABLE_NAME];
|
||||
delete process.env[DOMAIN_VARIABLE_NAME];
|
||||
|
||||
const apl = new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
});
|
||||
const apl = new VercelAPL(aplConfig);
|
||||
|
||||
expect(await apl.get("example.com")).toBe(undefined);
|
||||
});
|
||||
|
@ -112,30 +97,19 @@ describe("APL", () => {
|
|||
});
|
||||
|
||||
it("Read existing auth data", async () => {
|
||||
const stubAuthData = {
|
||||
domain: "example.com",
|
||||
token: "example-token",
|
||||
};
|
||||
|
||||
process.env[TOKEN_VARIABLE_NAME] = stubAuthData.token;
|
||||
process.env[DOMAIN_VARIABLE_NAME] = stubAuthData.domain;
|
||||
|
||||
const apl = new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
});
|
||||
const apl = new VercelAPL(aplConfig);
|
||||
|
||||
expect(await apl.getAll()).toStrictEqual([stubAuthData]);
|
||||
});
|
||||
|
||||
it("Return empty list when no auth data are existing", async () => {
|
||||
process.env[TOKEN_VARIABLE_NAME] = undefined;
|
||||
process.env[DOMAIN_VARIABLE_NAME] = undefined;
|
||||
delete process.env[TOKEN_VARIABLE_NAME];
|
||||
delete process.env[DOMAIN_VARIABLE_NAME];
|
||||
|
||||
const apl = new VercelAPL({
|
||||
deploymentToken: "token",
|
||||
registerAppURL: "http://example.com",
|
||||
});
|
||||
const apl = new VercelAPL(aplConfig);
|
||||
|
||||
expect(await apl.getAll()).toStrictEqual([]);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue