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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
import t from 'tap';
import {testContentFunctions} from '#test-lib';
testContentFunctions(t, 'image (snapshot)', async (t, evaluate) => {
await evaluate.load();
const quickSnapshot = (message, {extraDependencies, ...opts}) =>
evaluate.snapshot(message, {
name: 'image',
extraDependencies: {
checkIfImagePathHasCachedThumbnails: path => !path.endsWith('.gif'),
getSizeOfImagePath: () => 0,
getDimensionsOfImagePath: () => [600, 600],
getThumbnailEqualOrSmaller: () => 'medium',
getThumbnailsAvailableForDimensions: () =>
[['large', 800], ['medium', 400], ['small', 250]],
missingImagePaths: ['album-art/missing/cover.png'],
...extraDependencies,
},
...opts,
});
quickSnapshot('source via path', {
slots: {
path: ['media.albumCover', 'beyond-canon', 'png'],
},
});
quickSnapshot('source via src', {
slots: {
src: 'https://example.com/bananas.gif',
},
});
quickSnapshot('source missing', {
slots: {
missingSourceContent: 'Example of missing source message.',
},
});
quickSnapshot('width & height', {
slots: {
src: 'foobar',
width: 600,
height: 400,
},
});
quickSnapshot('square', {
slots: {
src: 'foobar',
square: true,
},
});
quickSnapshot('lazy with square', {
slots: {
src: 'foobar',
lazy: true,
square: true,
},
});
quickSnapshot('link with file size', {
extraDependencies: {
getSizeOfImagePath: () => 10 ** 6,
},
slots: {
path: ['media.albumCover', 'pingas', 'png'],
link: true,
},
});
quickSnapshot('content warnings via tags', {
args: [
[
{name: 'Dirk Strider', directory: 'dirk'},
{name: 'too cool for school', isContentWarning: true},
],
],
slots: {
path: ['media.albumCover', 'beyond-canon', 'png'],
},
});
evaluate.snapshot('thumbnail details', {
name: 'image',
extraDependencies: {
checkIfImagePathHasCachedThumbnails: () => true,
getSizeOfImagePath: () => 0,
getDimensionsOfImagePath: () => [900, 1200],
getThumbnailsAvailableForDimensions: () =>
[['voluminous', 1200], ['middling', 900], ['petite', 20]],
getThumbnailEqualOrSmaller: () => 'voluminous',
missingImagePaths: [],
},
slots: {
thumb: 'gargantuan',
path: ['media.albumCover', 'beyond-canon', 'png'],
},
});
quickSnapshot('thumb requested but source is gif', {
slots: {
thumb: 'medium',
path: ['media.flashArt', '5426', 'gif'],
},
});
quickSnapshot('missing image path', {
slots: {
thumb: 'medium',
path: ['media.albumCover', 'missing', 'png'],
link: true,
},
});
quickSnapshot('missing image path w/ missingSourceContent', {
slots: {
thumb: 'medium',
path: ['media.albumCover', 'missing', 'png'],
missingSourceContent: `Cover's missing, whoops`,
},
});
});
|