Newer
Older

richard.petersen
committed
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 request from 'supertest'
import { brotliParser, generateSimpleViteManifest, mockApp, mockConfig, mockFetch, mockRedis } from './util.js'
import { expect } from 'chai'
import * as td from 'testdouble'
import RedisMock from 'ioredis-mock'
describe('Salt', function () {
let app
let config
beforeEach(async function () {
mockConfig(config = { baseUrls: ['http://ui-server/'] })
mockRedis()
mockFetch({
'http://ui-server': {
'/manifest.json': generateSimpleViteManifest({ 'example.js': 'test' }),
'/example.js': ''
}
})
app = await mockApp()
})
afterEach(async function () {
td.reset()
await new RedisMock().flushdb()
})
it('change version when salt changes', async function () {
const response = await request(app.server).get('/manifests').parse(brotliParser)
expect(response.statusCode).to.equal(200)
expect(response.headers.version).to.equal('1916675216')
// update salt
config.salt = '1'
await import('../src/version.js').then(async ({ updateVersionProcessor }) => {
// need to process two times to actually trigger the update
await updateVersionProcessor()
await updateVersionProcessor()
})
const responseAfterUpdate = await request(app.server).get('/manifests').parse(brotliParser)
expect(responseAfterUpdate.statusCode).to.equal(200)
expect(responseAfterUpdate.headers.version).to.equal('1916675216-1')
})
})