From aa43d2a50fc5e0629b7a1b6326ffddbbf706d848 Mon Sep 17 00:00:00 2001
From: David Bauer <david.bauer@open-xchange.com>
Date: Thu, 15 Jun 2023 16:55:53 +0200
Subject: [PATCH] Change: Error handling improved

---
 spec/file_caching_test.js | 2 +-
 src/errors.js             | 4 ++--
 src/routes/serve-files.js | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/spec/file_caching_test.js b/spec/file_caching_test.js
index 8c50df8..82aa8a3 100644
--- a/spec/file_caching_test.js
+++ b/spec/file_caching_test.js
@@ -292,7 +292,7 @@ describe('File caching service', function () {
     app = await injectApp()
 
     const response1 = await app.inject({ url: '/example.js' })
-    expect(response1.statusCode).to.equal(404)
+    expect(response1.statusCode).to.equal(503)
 
     const response2 = await app.inject({ url: '/example.js' })
     expect(response2.statusCode).to.equal(200)
diff --git a/src/errors.js b/src/errors.js
index b931f0c..1d7073f 100644
--- a/src/errors.js
+++ b/src/errors.js
@@ -14,7 +14,7 @@ export class VersionMismatchError extends Error {}
  */
 export function isVersionMismatchError (err) {
   const errors = err instanceof AggregateError ? err.errors : [err]
-  return errors.reduce((memo, error) => memo && error instanceof VersionMismatchError, true)
+  return errors.some(error => error instanceof VersionMismatchError)
 }
 
 /**
@@ -24,5 +24,5 @@ export function isVersionMismatchError (err) {
  */
 export function isNotFoundError (err) {
   const errors = err instanceof AggregateError ? err.errors : [err]
-  return errors.reduce((memo, error) => memo && error instanceof NotFoundError, true)
+  return errors.some(error => error instanceof NotFoundError)
 }
diff --git a/src/routes/serve-files.js b/src/routes/serve-files.js
index 641a910..4a56c66 100644
--- a/src/routes/serve-files.js
+++ b/src/routes/serve-files.js
@@ -9,11 +9,10 @@ export default async function serveFilePlugin (fastify, options) {
 
       const path = url === '/' ? '/index.html' : url
       const { body, headers } = await getFile({ version, path })
-
       reply.headers(headers)
       reply.send(body)
     } catch (err) {
-      if (isNotFoundError(err) || isVersionMismatchError(err)) throw fastify.httpErrors.createError(404, `File "${req.urlData('path')}" does not exist.`)
+      if (isNotFoundError(err) || isVersionMismatchError(err)) throw fastify.httpErrors.createError(404, `File "${req.urlData('path')}" does not exist.`, err)
       throw fastify.httpErrors.createError(err.statusCode || 500, err)
     }
   })
-- 
GitLab