From e785c241ec96296f1be564c9515691fc774f3b80 Mon Sep 17 00:00:00 2001
From: David Bauer <david.bauer@open-xchange.com>
Date: Mon, 5 Jun 2023 11:51:03 +0200
Subject: [PATCH] Change: Explicitly set content-type to utf-8 for javascript
 files

---
 spec/app_root_test.js     | 2 +-
 spec/file_caching_test.js | 6 +++---
 src/files.js              | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/spec/app_root_test.js b/spec/app_root_test.js
index dd6781a..dcb6713 100644
--- a/spec/app_root_test.js
+++ b/spec/app_root_test.js
@@ -51,7 +51,7 @@ describe('With different app root', function () {
   it('serves files defined in manifest.json file', async function () {
     const response = await app.inject({ url: '/appsuite/example.js' })
     expect(response.statusCode).to.equal(200)
-    expect(response.headers['content-type']).to.equal('application/javascript')
+    expect(response.headers['content-type']).to.equal('application/javascript; charset=utf-8')
     expect(response.body).to.equal('this is example')
 
     const response2 = await app.inject({ url: '/appsuite/test.txt' })
diff --git a/spec/file_caching_test.js b/spec/file_caching_test.js
index 7579aee..8c50df8 100644
--- a/spec/file_caching_test.js
+++ b/spec/file_caching_test.js
@@ -66,7 +66,7 @@ describe('File caching service', function () {
   it('serves files defined in manifest.json file', async function () {
     const response = await app.inject({ url: '/example.js' })
     expect(response.statusCode).to.equal(200)
-    expect(response.headers['content-type']).to.equal('application/javascript')
+    expect(response.headers['content-type']).to.equal('application/javascript; charset=utf-8')
     expect(response.body).to.equal('this is example')
     // expect(response.headers['content-security-policy']).to.contain('sha256-NzZhMTE2Njc2YTgyNTZmZTdlZGVjZDU3YTNmYzRjNmM1OWZkMTI2NjRkYzZmMWM3YTkwMGU3ZTdhNDlhZmVlMwo=')
     const response2 = await app.inject({ url: '/test.txt' })
@@ -113,7 +113,7 @@ describe('File caching service', function () {
       'http://ui-server': {
         '/manifest.json': generateSimpleViteManifest({}),
         '/example.js': spy = sandbox.spy(() => {
-          return new Response('this is example', { headers: { 'content-type': 'application/javascript' } })
+          return new Response('this is example', { headers: { 'content-type': 'application/javascript; charset=utf-8' } })
         })
       }
     })
@@ -134,7 +134,7 @@ describe('File caching service', function () {
       'http://ui-server': {
         '/manifest.json': generateSimpleViteManifest({}),
         '/example.js': spy = sandbox.spy(() => {
-          return new Response('this is example', { headers: { 'content-type': 'application/javascript' } })
+          return new Response('this is example', { headers: { 'content-type': 'application/javascript; charset=utf-8' } })
         })
       }
     })
diff --git a/src/files.js b/src/files.js
index 5d852c4..0daca8b 100644
--- a/src/files.js
+++ b/src/files.js
@@ -38,7 +38,7 @@ export async function fetchFileWithHeadersFromBaseUrl ({ path, baseUrl, version
   const result = {
     body: Buffer.from(await response.arrayBuffer()),
     headers: {
-      'content-type': response.headers.get('content-type'),
+      'content-type': response.headers.get('content-type') === 'application/javascript' ? 'application/javascript; charset=utf-8' : response.headers.get('content-type'),
       dependencies
     }
   }
-- 
GitLab