-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
process-declaration-plugins.test.ts
52 lines (43 loc) · 1.8 KB
/
process-declaration-plugins.test.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
import postcss from 'postcss';
import postcssRTLCSS from '../src';
import {PluginOptions} from '../src/@types';
import {
readCSSFile,
runTests,
createSnapshotFileName
} from './utils';
import 'jest-specific-snapshot';
const BASE_NAME = 'process-declaration-plugins';
runTests({}, (pluginOptions: PluginOptions): void => {
describe(`[[Mode: ${pluginOptions.mode}]]`, (): void => {
let input = '';
beforeEach(async (): Promise<void> => {
input = input || await readCSSFile(`input-${BASE_NAME}.scss`);
});
it('flip background by default', (): void => {
const output = postcss([postcssRTLCSS(pluginOptions)]).process(input);
expect(output.css).toMatchSpecificSnapshot(
createSnapshotFileName(BASE_NAME, 'flip', pluginOptions.mode)
);
expect(output.warnings()).toHaveLength(0);
});
it('use {processDeclarationPlugins} to avoid flipping background', (): void => {
const options: PluginOptions = {
...pluginOptions,
processDeclarationPlugins: [{
name: 'avoid-flipping-background',
priority: 99, // above the core RTLCSS plugin which has a priority value of 100
processors: [{
expr: /(background|object)(-position(-x)?|-image)?$/i,
action: (prop: string, value: string) => ({prop, value})
}]
}]
};
const output = postcss([postcssRTLCSS(options)]).process(input);
expect(output.css).toMatchSpecificSnapshot(
createSnapshotFileName(BASE_NAME, 'noflip', pluginOptions.mode)
);
expect(output.warnings()).toHaveLength(0);
});
});
});