-
Notifications
You must be signed in to change notification settings - Fork 170
/
css_test.ts
46 lines (40 loc) · 1.75 KB
/
css_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
import { assertEquals } from 'std/testing/asserts.ts'
import cssLoader from './css.ts'
Deno.test('css loader', async () => {
const loader = cssLoader()
const { code } = await loader.transform({
url: '/test.css',
content: (new TextEncoder).encode('h1 { font-size: 18px; }'),
})
assertEquals(loader.test.test('/test.css'), true)
assertEquals(loader.test.test('/test.pcss'), true)
assertEquals(loader.acceptHMR, true)
assertEquals(code, 'import { applyCSS } from "https://deno.land/x/aleph/framework/core/style.ts"\napplyCSS("/test.css", "h1 { font-size: 18px; }")')
})
Deno.test('css loader for inline style', async () => {
const loader = cssLoader()
const { code, type } = await loader.transform({
url: '#inline-style-{}',
content: (new TextEncoder).encode('h1 { font-size: 18px; }'),
})
assertEquals(code, 'h1 { font-size: 18px; }')
assertEquals(type, 'css')
})
Deno.test('css loader in production mode', async () => {
Deno.env.set('BUILD_MODE', 'production')
const loader = cssLoader()
const { code } = await loader.transform({
url: '/test.css',
content: (new TextEncoder).encode('h1 { font-size: 18px; }'),
})
assertEquals(code, 'import { applyCSS } from "https://deno.land/x/aleph/framework/core/style.ts"\napplyCSS("/test.css", "h1{font-size:18px}")')
Deno.env.delete('BUILD_MODE')
})
Deno.test('css loader with postcss plugins', async () => {
const loader = cssLoader({ postcss: { plugins: ['postcss-nested'] } })
const { code } = await loader.transform({
url: '/test.css',
content: (new TextEncoder).encode('.foo { .bar { font-size: 100%; } }'),
})
assertEquals(code, 'import { applyCSS } from "https://deno.land/x/aleph/framework/core/style.ts"\napplyCSS("/test.css", ".foo .bar { font-size: 100%; }")')
})