From 7216f9725562a1052717233621cc6c4e67d063cc Mon Sep 17 00:00:00 2001
From: Richard Petersen <richard.petersen@open-xchange.com>
Date: Thu, 10 Nov 2022 16:04:58 +0100
Subject: [PATCH] Repair tests

---
 integration/caching_test.js |  8 +++++---
 spec/file_caching_test.js   |  4 ++--
 spec/server_test.js         | 19 ++++---------------
 3 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/integration/caching_test.js b/integration/caching_test.js
index effaa06..f54041f 100644
--- a/integration/caching_test.js
+++ b/integration/caching_test.js
@@ -1,8 +1,9 @@
 import request from 'supertest'
 import { expect } from 'chai'
-import { generateSimpleViteManifest, mockApp, mockConfig, mockFetch } from '../spec/util.js'
+import { brotliParser, generateSimpleViteManifest, mockApp, mockConfig, mockFetch } from '../spec/util.js'
 import * as td from 'testdouble'
 import { getRedisKey } from '../src/util.js'
+import zlib from 'node:zlib'
 
 describe('File caching service', function () {
   let app
@@ -26,13 +27,14 @@ describe('File caching service', function () {
   })
 
   it('caches manifest data', async function () {
-    const response = await request(app.server).get('/manifests')
+    const response = await request(app.server).get('/manifests').parse(brotliParser)
     expect(response.statusCode).to.equal(200)
     const version = response.headers.version
 
     const { client } = await import('../src/redis.js')
     expect(await client.get(getRedisKey({ version, name: 'viteManifests' }))).to.equal('{"index.html":{"file":"index.html","meta":{"baseUrl":"http://ui-server/"}}}')
-    expect(await client.get(getRedisKey({ version, name: 'oxManifests' }))).to.equal('[]')
+    const redisData = await client.getBuffer(getRedisKey({ version, name: 'oxManifests:body' }))
+    expect(zlib.brotliDecompressSync(redisData || '').toString()).to.equal('[]')
   })
 
   it('caches html files', async function () {
diff --git a/spec/file_caching_test.js b/spec/file_caching_test.js
index e25c1bb..d3e8023 100644
--- a/spec/file_caching_test.js
+++ b/spec/file_caching_test.js
@@ -1,5 +1,5 @@
 import request from 'supertest'
-import { generateSimpleViteManifest, mockApp, mockConfig, mockFetch, mockRedis } from './util.js'
+import { brotliParser, generateSimpleViteManifest, mockApp, mockConfig, mockFetch, mockRedis } from './util.js'
 import fs from 'fs'
 import { expect } from 'chai'
 import * as td from 'testdouble'
@@ -350,7 +350,7 @@ describe('File caching service', function () {
 
     expect(spy.callCount).to.equal(0)
     const [res1, res2] = await Promise.all([
-      request(app.server).get('/manifests'),
+      request(app.server).get('/manifests').parse(brotliParser),
       request(app.server).get('/example.js')
     ])
     expect(res1.statusCode).to.equal(200)
diff --git a/spec/server_test.js b/spec/server_test.js
index cbf20ea..b67e78b 100644
--- a/spec/server_test.js
+++ b/spec/server_test.js
@@ -27,21 +27,9 @@ describe('UI Middleware', function () {
   })
 
   it('fetches manifest data', async function () {
-    const response = await request(app.server).get('/manifests')
-    expect(response.statusCode).to.equal(200)
-    expect(response.headers['content-encoding']).to.equal('gzip')
-    expect(response.body).to.deep.equal([{ namespace: 'test', path: 'example' }])
-  })
-
-  it('fetches manifest data with brotli', async function () {
-    const response = await request(app.server)
-      .get('/manifests')
-      .set('accept-encoding', 'deflate, gzip, br')
-      .buffer(true)
-      .parse(brotliParser)
+    const response = await request(app.server).get('/manifests').parse(brotliParser)
     expect(response.statusCode).to.equal(200)
     expect(response.headers['content-encoding']).to.equal('br')
-    expect(response.headers['content-type']).to.equal('application/json; charset=utf-8')
     expect(response.body).to.deep.equal([{ namespace: 'test', path: 'example' }])
   })
 
@@ -56,7 +44,7 @@ describe('UI Middleware', function () {
     })
 
     it('caches manifest data', async function () {
-      const response = await request(app.server).get('/manifests')
+      const response = await request(app.server).get('/manifests').parse(brotliParser)
       expect(response.statusCode).to.equal(200)
       expect(response.body).to.deep.equal([{ namespace: 'test', path: 'example' }])
 
@@ -67,7 +55,7 @@ describe('UI Middleware', function () {
 
       await new Promise(resolve => setTimeout(resolve, 150))
 
-      const response2 = await request(app.server).get('/manifests')
+      const response2 = await request(app.server).get('/manifests').parse(brotliParser)
       expect(response2.statusCode).to.equal(200)
       expect(response2.body).to.deep.equal([{ namespace: 'test', path: 'example' }])
     })
@@ -93,6 +81,7 @@ describe('UI Middleware', function () {
     it('can load multiple configurations', async function () {
       await request(app.server)
         .get('/manifests')
+        .parse(brotliParser)
         .then(response => {
           expect(response.statusCode).to.equal(200)
           expect(response.body).to.deep.equal([
-- 
GitLab