/
index.test.js
122 lines (101 loc) · 2.93 KB
/
index.test.js
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
import { afterAll, beforeAll, describe, it, expect } from '@jest/globals'
import Core from '@uppy/core'
import StatusBarPlugin from '@uppy/status-bar'
import GoogleDrivePlugin from '@uppy/google-drive'
import resizeObserverPolyfill from 'resize-observer-polyfill'
import DashboardPlugin from '../lib/index.js'
describe('Dashboard', () => {
beforeAll(() => {
globalThis.ResizeObserver = resizeObserverPolyfill.default || resizeObserverPolyfill
})
afterAll(() => {
delete globalThis.ResizeObserver
})
it('can safely be added together with the StatusBar without id conflicts', () => {
const core = new Core()
core.use(StatusBarPlugin)
expect(() => {
core.use(DashboardPlugin, { inline: false })
}).not.toThrow()
core.close()
})
it('works without any remote provider plugins', () => {
const core = new Core()
expect(() => {
core.use(DashboardPlugin, {
inline: true,
target: 'body',
})
}).not.toThrow()
core.close()
})
it('works when targeting remote provider plugins using `target`', () => {
const core = new Core()
expect(() => {
core.use(DashboardPlugin, {
inline: true,
target: 'body',
})
core.use(GoogleDrivePlugin, { target: DashboardPlugin, companionUrl: 'https://fake.uppy.io/' })
}).not.toThrow()
core.close()
})
it('works when passing plugins in `plugins` array', () => {
const core = new Core()
core.use(GoogleDrivePlugin, { companionUrl: 'https://fake.uppy.io/' })
expect(() => {
core.use(DashboardPlugin, {
inline: true,
target: 'body',
plugins: ['GoogleDrive'],
})
}).not.toThrow()
core.close()
})
it('should change options on the fly', () => {
const core = new Core()
core.use(DashboardPlugin, {
inline: true,
target: 'body',
})
core.getPlugin('Dashboard').setOptions({
width: 300,
})
expect(
core.getPlugin('Dashboard').opts.width,
).toEqual(300)
})
it('should use updated locale from Core, when it’s set via Core’s setOptions()', () => {
const core = new Core()
core.use(DashboardPlugin, {
inline: true,
target: 'body',
})
core.setOptions({
locale: {
strings: {
myDevice: 'Май дивайс',
},
},
})
expect(
core.getPlugin('Dashboard').i18n('myDevice'),
).toEqual('Май дивайс')
})
it('should accept a callback as `metaFields` option', () => {
const core = new Core()
expect(() => {
core.use(DashboardPlugin, {
metaFields: (file) => {
const fields = [{ id: 'name', name: 'File name' }]
if (file.type.startsWith('image/')) {
fields.push({ id: 'location', name: 'Photo Location' })
fields.push({ id: 'alt', name: 'Alt text' })
}
return fields
},
})
}).not.toThrow()
core.close()
})
})