From c25a86a05a2966b119e7eb3e63a5403c6c72ddd3 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Wed, 9 Oct 2024 18:07:58 +0530 Subject: [PATCH 1/2] log proper error msg when host is not provided when live preview enabled --- package-lock.json | 4 ++-- package.json | 2 +- src/lib/request.ts | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index a4f3e26..bb610bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@contentstack/core", - "version": "1.1.1", + "version": "1.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@contentstack/core", - "version": "1.1.1", + "version": "1.1.2", "dependencies": { "axios": "^1.7.4", "axios-mock-adapter": "^1.22.0", diff --git a/package.json b/package.json index 1826afd..8f0929c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/core", - "version": "1.1.1", + "version": "1.1.2", "type": "commonjs", "main": "./dist/cjs/src/index.js", "types": "./dist/cjs/src/index.d.ts", diff --git a/src/lib/request.ts b/src/lib/request.ts index d282a62..c2f3bf4 100644 --- a/src/lib/request.ts +++ b/src/lib/request.ts @@ -13,13 +13,13 @@ export async function getData(instance: AxiosInstance, url: string, data?: any) instance.defaults.headers.preview_token = livePreviewParams.preview_token; instance.defaults.headers.live_preview = livePreviewParams.live_preview; } - - if (livePreviewParams.enable && livePreviewParams.live_preview && livePreviewParams.live_preview !== 'init') { + if (livePreviewParams.enable) { // adds protocol so host is replaced and not appended - if (livePreviewParams.host.split(0, 8) === 'https://') { - instance.defaults.baseURL = livePreviewParams.host; - } else { - instance.defaults.baseURL = 'https://' + livePreviewParams.host; + if (livePreviewParams.live_preview && livePreviewParams.live_preview !== 'init') { + if (!livePreviewParams.host) { + throw new Error('Host is required for live preview'); + } + instance.defaults.baseURL = livePreviewParams.host.startsWith('https://') ? '' : 'https://' + livePreviewParams.host; } } } @@ -30,7 +30,7 @@ export async function getData(instance: AxiosInstance, url: string, data?: any) } else { throw Error(JSON.stringify(response)); } - } catch (err) { - throw Error(JSON.stringify(err)); + } catch (err: any) { + throw new Error(`${err.message || JSON.stringify(err)}`); } } From a1518227aae89b6b1ac881c43a7026f508de49b2 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Wed, 9 Oct 2024 18:53:30 +0530 Subject: [PATCH 2/2] added test to check the error msg --- test/request.spec.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/request.spec.ts b/test/request.spec.ts index f9fbbf2..0c444ce 100644 --- a/test/request.spec.ts +++ b/test/request.spec.ts @@ -24,4 +24,16 @@ describe('Request tests', () => { await expect(getData(client, url)).rejects.toThrowError(errorMessage); }); + + it('should throw error when host is required for live preview', async () => { + const client = httpClient({}); + const url = '/your-api-endpoint'; + client.stackConfig = { + live_preview: { + enable: true, + preview_token: 'someToken', + }, + }; + await expect(getData(client, url, {})).rejects.toThrowError('Host is required for live preview'); + }); });