1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const ts_mockito_1 = require("ts-mockito");
|
4 | const backfill_utils_test_1 = require("backfill-utils-test");
|
5 | const backfill_cache_1 = require("backfill-cache");
|
6 | const backfill_hasher_1 = require("backfill-hasher");
|
7 | const backfill_config_1 = require("backfill-config");
|
8 | const index_1 = require("../index");
|
9 | const commandRunner_1 = require("../commandRunner");
|
10 | describe("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 |