Skip to content

Commit af95108

Browse files
committed
test: add virtual tests
1 parent d3225e2 commit af95108

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/** @jest-environment node */
2+
/* eslint-disable */
3+
'use strict';
4+
5+
var create = require('../../index').create;
6+
var addonVirtual = require('../../addon/virtual').addon;
7+
8+
function createNano (config) {
9+
var nano = create(config);
10+
11+
addonVirtual(nano);
12+
13+
return nano;
14+
};
15+
16+
describe('virtual - node', function () {
17+
it('installs interface', function () {
18+
var nano = createNano();
19+
20+
expect(typeof nano.atomic).toBe('function');
21+
expect(typeof nano.virtual).toBe('function');
22+
});
23+
24+
describe('atomic()', function () {
25+
it('injects raw styles', function () {
26+
var nano = createNano();
27+
28+
var className = nano.atomic('&', 'color:red;', '');
29+
30+
expect(className).toBe('_a');
31+
expect(nano.raw).toBe('._a{color:red;}')
32+
});
33+
34+
it('increments ID', function () {
35+
var nano = createNano();
36+
37+
expect(nano.atomic('&', 'color:red;')).toBe('_a')
38+
expect(nano.atomic('&', 'color:blue;')).toBe('_b')
39+
expect(nano.atomic('&', 'color:green;')).toBe('_c')
40+
expect(nano.raw).toBe('._a{color:red;}._b{color:blue;}._c{color:green;}');
41+
});
42+
43+
it('caches', function () {
44+
var nano = createNano();
45+
46+
expect(nano.atomic('&', 'color:red;')).toBe('_a')
47+
expect(nano.atomic('&', 'color:red;')).toBe('_a')
48+
});
49+
50+
it('at-rules', function () {
51+
var nano = createNano();
52+
53+
expect(nano.atomic('&', 'color:red;', '@media screen')).toBe('_a')
54+
expect(nano.atomic('&', 'color:red;', '@media screen')).toBe('_a')
55+
expect(nano.raw).toBe('@media screen{._a{color:red;}}');
56+
});
57+
58+
it('interpolates selector', function () {
59+
var nano = createNano();
60+
61+
expect(nano.atomic('.global &:hover', 'color:red;', '@media screen')).toBe('_a')
62+
expect(nano.atomic('.global &:hover', 'color:red;', '@media screen')).toBe('_a')
63+
expect(nano.raw).toBe('@media screen{.global ._a:hover{color:red;}}');
64+
});
65+
});
66+
});

0 commit comments

Comments
 (0)