UNPKG

4.94 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const ts_mockito_1 = require("ts-mockito");
4const backfill_utils_test_1 = require("backfill-utils-test");
5const backfill_cache_1 = require("backfill-cache");
6const backfill_hasher_1 = require("backfill-hasher");
7const backfill_config_1 = require("backfill-config");
8const index_1 = require("../index");
9const commandRunner_1 = require("../commandRunner");
10describe("backfill", () => {
11 it("with cache miss and then cache hit", async () => {
12 // Set up
13 await backfill_utils_test_1.setupFixture("basic");
14 const config = backfill_config_1.createConfig();
15 const { cacheStorageConfig, clearOutputFolder, internalCacheFolder, outputFolder, packageRoot } = config;
16 // Arrange
17 const cacheStorage = backfill_cache_1.getCacheStorageProvider(cacheStorageConfig, internalCacheFolder);
18 const buildCommandRaw = "npm run compile";
19 const buildCommand = commandRunner_1.createBuildCommand([buildCommandRaw], clearOutputFolder, outputFolder);
20 const hasher = new backfill_hasher_1.Hasher({ packageRoot, outputFolder }, buildCommandRaw);
21 // Spy
22 const spiedCacheStorage = ts_mockito_1.spy(cacheStorage);
23 const spiedBuildCommand = jest.fn(buildCommand);
24 const spiedHasher = ts_mockito_1.spy(hasher);
25 // Execute
26 await index_1.backfill(config, cacheStorage, spiedBuildCommand, hasher);
27 // Assert
28 ts_mockito_1.verify(spiedHasher.createPackageHash()).once();
29 expect(spiedBuildCommand).toHaveBeenCalled();
30 ts_mockito_1.verify(spiedCacheStorage.fetch(ts_mockito_1.anyString(), ts_mockito_1.anyString())).once();
31 ts_mockito_1.verify(spiedCacheStorage.put(ts_mockito_1.anyString(), ts_mockito_1.anyString())).once();
32 ts_mockito_1.resetCalls(spiedHasher);
33 ts_mockito_1.resetCalls(spiedCacheStorage);
34 jest.clearAllMocks();
35 // Execute
36 await index_1.backfill(config, cacheStorage, buildCommand, hasher);
37 // Assert
38 ts_mockito_1.verify(spiedHasher.createPackageHash()).once();
39 expect(spiedBuildCommand).not.toHaveBeenCalled();
40 ts_mockito_1.verify(spiedCacheStorage.fetch(ts_mockito_1.anyString(), ts_mockito_1.anyString())).once();
41 ts_mockito_1.verify(spiedCacheStorage.put(ts_mockito_1.anyString(), ts_mockito_1.anyString())).never();
42 });
43});
44//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2ZpbGwudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vYmFja2ZpbGwudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFnRTtBQUVoRSw2REFBbUQ7QUFDbkQsbURBQXlEO0FBQ3pELHFEQUF5QztBQUN6QyxxREFBK0M7QUFFL0Msb0NBQW9DO0FBQ3BDLG9EQUFzRDtBQUV0RCxRQUFRLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtJQUN4QixFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEQsVUFBVTtRQUNWLE1BQU0sa0NBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QixNQUFNLE1BQU0sR0FBRyw4QkFBWSxFQUFFLENBQUM7UUFDOUIsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1osR0FBRyxNQUFNLENBQUM7UUFFWCxVQUFVO1FBQ1YsTUFBTSxZQUFZLEdBQUcsd0NBQXVCLENBQzFDLGtCQUFrQixFQUNsQixtQkFBbUIsQ0FDcEIsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQixDQUNyQyxDQUFDLGVBQWUsQ0FBQyxFQUNqQixpQkFBaUIsRUFDakIsWUFBWSxDQUNiLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFMUUsTUFBTTtRQUNOLE1BQU0saUJBQWlCLEdBQUcsZ0JBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQUcsZ0JBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoQyxVQUFVO1FBQ1YsTUFBTSxnQkFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFaEUsU0FBUztRQUNULG1CQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLG1CQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLHNCQUFTLEVBQUUsRUFBRSxzQkFBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pFLG1CQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHNCQUFTLEVBQUUsRUFBRSxzQkFBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRS9ELHVCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEIsdUJBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixVQUFVO1FBQ1YsTUFBTSxnQkFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELFNBQVM7UUFDVCxtQkFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0MsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakQsbUJBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsc0JBQVMsRUFBRSxFQUFFLHNCQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakUsbUJBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsc0JBQVMsRUFBRSxFQUFFLHNCQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
\No newline at end of file