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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
import t from 'tap';
import {testContentFunctions} from '../lib/content-function.js';
testContentFunctions(t, 'image (snapshot)', async (t, evaluate) => {
await evaluate.load();
const quickSnapshot = (message, opts) =>
evaluate.snapshot(message, {
name: 'image',
extraDependencies: {
getSizeOfImageFile: () => 0,
},
...opts,
});
quickSnapshot('source via path', {
postprocess: template => template
.slot('path', ['media.albumCover', 'beyond-canon', 'png']),
});
quickSnapshot('source via src', {
postprocess: template => template
.slot('src', 'https://example.com/bananas.gif'),
});
quickSnapshot('source missing', {
postprocess: template => template
.slot('missingSourceContent', 'Example of missing source message.'),
});
quickSnapshot('id without link', {
postprocess: template => template
.slot('src', 'foobar')
.slot('id', 'banana'),
});
quickSnapshot('id with link', {
postprocess: template => template
.slot('src', 'foobar')
.slot('link', true)
.slot('id', 'banana'),
});
quickSnapshot('id with square', {
postprocess: template => template
.slot('src', 'foobar')
.slot('square', true)
.slot('id', 'banana'),
})
quickSnapshot('width & height', {
postprocess: template => template
.slot('src', 'foobar')
.slot('width', 600)
.slot('height', 400),
});
quickSnapshot('square', {
postprocess: template => template
.slot('src', 'foobar')
.slot('square', true),
});
quickSnapshot('lazy with square', {
postprocess: template => template
.slot('src', 'foobar')
.slot('lazy', true)
.slot('square', true),
});
quickSnapshot('link with file size', {
extraDependencies: {
getSizeOfImageFile: () => 10 ** 6,
},
postprocess: template => template
.slot('path', ['media.albumCover', 'pingas', 'png'])
.slot('link', true),
});
quickSnapshot('content warnings via tags', {
args: [
[
{name: 'Dirk Strider', directory: 'dirk'},
{name: 'too cool for school', isContentWarning: true},
],
],
postprocess: template => template
.slot('path', ['media.albumCover', 'beyond-canon', 'png']),
})
});
|