-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathunit.ts
66 lines (57 loc) · 1.97 KB
/
unit.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { Step } from "@shanzhai/interfaces";
import { htmlSourceStore } from "@shanzhai/html-source-store";
import { MinifyHtmlStep } from "@shanzhai/minify-html-step";
import { zipContentStore } from "@shanzhai/zip-content-store";
import { DeleteFromKeyedStoreStep } from "@shanzhai/delete-from-keyed-store-step";
import { KeyedStoreGetInput } from "@shanzhai/keyed-store-get-input";
import { KeyedStoreSetOutput } from "@shanzhai/keyed-store-set-output";
import minifyHtmlPlugin = require(".");
import { WrapInObjectOutput } from "@shanzhai/wrap-in-object-output";
describe(`minify-html-plugin`, () => {
it(`is triggered by the HTML source store`, () => {
expect(minifyHtmlPlugin.triggers.minifyHtml.keyedStore).toBe(
htmlSourceStore
);
});
it(`advertises the stores it will write to`, () => {
expect(
expect(minifyHtmlPlugin.triggers.minifyHtml.writesToStores).toEqual(
jasmine.arrayWithExactContents([zipContentStore])
)
);
});
it(`does not refresh all when other stores change`, () => {
expect(
minifyHtmlPlugin.triggers.minifyHtml.refreshAllWhenStoresChange
).toEqual([]);
});
describe(`when HTML source is removed`, () => {
let step: Step;
beforeAll(() => {
step = minifyHtmlPlugin.triggers.minifyHtml.down(`Test Key`);
});
it(`deletes the minified HTML from the store`, () => {
expect(step).toEqual(
new DeleteFromKeyedStoreStep(zipContentStore, `Test Key`)
);
});
});
describe(`when HTML source is added`, () => {
let step: Step;
beforeAll(() => {
step = minifyHtmlPlugin.triggers.minifyHtml.up(`Test Key`);
});
it(`minifies the HTML`, () => {
expect(step).toEqual(
new MinifyHtmlStep(
`Test Key`,
new KeyedStoreGetInput(htmlSourceStore, `Test Key`),
new WrapInObjectOutput(
`Test Key`,
new KeyedStoreSetOutput(zipContentStore, `Test Key`)
)
)
);
});
});
});