@applicaster/zapplicaster-cli
Version:
CLI Tool for the zapp app and Quick Brick project
100 lines (78 loc) • 2.45 kB
JavaScript
const { configFilesRetriever } = require("../configFilesRetriever");
const mock_curriedSaveRemoteJsonToFile = jest.fn();
const mock_curriedRenderConfigFile = jest.fn();
jest.mock("../../../download", () => ({
saveRemoteJsonToFile: jest.fn(() => mock_curriedSaveRemoteJsonToFile),
saveFontFiles: jest.fn(),
saveAssets: jest.fn(),
}));
jest.mock("../../../render", () => ({
renderConfigFile: jest.fn(() => mock_curriedRenderConfigFile),
saveConfigFile: jest.fn(),
}));
const {
saveRemoteJsonToFile,
saveFontFiles,
saveAssets,
} = require("../../../download");
const { renderConfigFile } = require("../../../render");
const { build_params: buildParams } = require("./fixtures/buildParams.json");
const {
runtimeConfigurationUrlsCreator,
} = require("../runtimeConfigurationUrlsCreator");
const destinationPath = "path/to/workspace";
const platform = "ios";
const template = {};
const configuration = {
buildParams,
destinationPath,
platform,
template,
};
describe("configFilesRetriever", () => {
beforeAll((done) => {
runtimeConfigurationUrlsCreator(configuration).then(() => {
done();
});
});
afterEach(() => {
mock_curriedSaveRemoteJsonToFile.mockClear();
saveRemoteJsonToFile.mockClear();
saveAssets.mockClear();
saveFontFiles.mockClear();
});
it("downloads and saves json config files", async () => {
await configFilesRetriever(configuration);
expect(saveRemoteJsonToFile).toHaveBeenCalledWith(configuration);
expect(mock_curriedSaveRemoteJsonToFile).toHaveBeenCalledTimes(4);
});
it("saves custom config files form the template", async () => {
const configFiles = [
{ name: "custom_conf.json", getJsonContent: () => ({ foo: "bar" }) },
];
const config = {
...configuration,
template: {
configFiles,
},
};
await configFilesRetriever(config);
expect(renderConfigFile).toHaveBeenCalledWith(config);
expect(mock_curriedRenderConfigFile).toHaveBeenCalledWith(configFiles[0]);
});
it("saves assets", async () => {
await configFilesRetriever(configuration);
expect(saveAssets).toHaveBeenCalledWith(
configuration,
buildParams.assets_url
);
});
it("saves fonts", async () => {
await configFilesRetriever(configuration);
expect(saveFontFiles).toHaveBeenCalledWith(
configuration,
buildParams.fonts_url,
buildParams.fonts
);
});
});