« get me outta code hell

image.js « snapshot « test - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/test/snapshot/image.js
blob: 6bec1cca62f8e9af0584309be1bca2124769fe2f (plain)
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
import t from 'tap';
import {testContentFunctions} from '#test-lib';

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', {
    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('id without link', {
    slots: {
      src: 'foobar',
      id: 'banana',
    },
  });

  quickSnapshot('id with link', {
    slots: {
      src: 'foobar',
      link: true,
      id: 'banana',
    },
  });

  quickSnapshot('id with square', {
    slots: {
      src: 'foobar',
      square: true,
      id: 'banana',
    },
  });

  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: {
      getSizeOfImageFile: () => 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'],
    },
  });
});