@solucx/react-native-solucx-widget 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"widgetBootstrapService.d.ts","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3D,QAAA,MAAM,kBAAkB,GAAI,eAAe,UAAU,KAAG,eAYvD,CAAC;AA0BF,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"widgetBootstrapService.d.ts","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3D,QAAA,MAAM,kBAAkB,GAAI,eAAe,UAAU,KAAG,eAYvD,CAAC;AA0BF,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -49,11 +49,14 @@ async function requestWidgetUrl(instanceKey, requestParams, userId) {
49
49
  const headers = buildRequestHeaders(instanceKey, userId);
50
50
  const response = await fetch(url, { method: "GET", headers });
51
51
  if (!response.ok) {
52
- throw new Error(`Failed to fetch widget URL: ${response.status} ${response.statusText}`);
52
+ if (!response.json)
53
+ throw new Error(`Failed to get error response: ${response?.status} ${response.statusText}`);
54
+ const errorPayload = await response?.json();
55
+ throw new Error(`status=${response?.status} message=${errorPayload?.message}`);
53
56
  }
54
- const payload = await response.json();
57
+ const payload = await response?.json();
55
58
  if (!payload?.url) {
56
- throw new Error("Widget URL not found in response");
59
+ throw new Error("Failed to get the widget api response.");
57
60
  }
58
61
  return payload.url;
59
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"widgetBootstrapService.js","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgetBootstrapService.js","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solucx/react-native-solucx-widget",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "The React Native SDK for Solucx Widget",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -505,7 +505,7 @@ describe("SoluCXWidget callbacks", () => {
505
505
 
506
506
  describe("SoluCXWidget error handling from requestWidgetUrl", () => {
507
507
  it("calls onError when requestWidgetUrl throws error for non-ok response (404)", async () => {
508
- mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to fetch widget URL: 404 Not Found"));
508
+ mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to get error response: 404 Not Found"));
509
509
  const onError = jest.fn();
510
510
 
511
511
  const props = {
@@ -519,14 +519,14 @@ describe("SoluCXWidget error handling from requestWidgetUrl", () => {
519
519
  await waitFor(() => {
520
520
  expect(mockRequestWidgetUrl).toHaveBeenCalledTimes(1);
521
521
  expect(onError).toHaveBeenCalledTimes(1);
522
- expect(onError).toHaveBeenCalledWith("Failed to fetch widget URL: 404 Not Found");
522
+ expect(onError).toHaveBeenCalledWith("Failed to get error response: 404 Not Found");
523
523
  expect(mockSetIsWidgetVisible).toHaveBeenCalledWith(false);
524
524
  expect(queryByTestId("webview")).toBeNull();
525
525
  });
526
526
  });
527
527
 
528
528
  it("calls onError when requestWidgetUrl throws error for non-ok response (500)", async () => {
529
- mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to fetch widget URL: 500 Internal Server Error"));
529
+ mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to get error response: 500 Internal Server Error"));
530
530
  const onError = jest.fn();
531
531
 
532
532
  const props = {
@@ -540,7 +540,7 @@ describe("SoluCXWidget error handling from requestWidgetUrl", () => {
540
540
  await waitFor(() => {
541
541
  expect(mockRequestWidgetUrl).toHaveBeenCalledTimes(1);
542
542
  expect(onError).toHaveBeenCalledTimes(1);
543
- expect(onError).toHaveBeenCalledWith("Failed to fetch widget URL: 500 Internal Server Error");
543
+ expect(onError).toHaveBeenCalledWith("Failed to get error response: 500 Internal Server Error");
544
544
  expect(mockSetIsWidgetVisible).toHaveBeenCalledWith(false);
545
545
  expect(queryByTestId("webview")).toBeNull();
546
546
  });
@@ -568,7 +568,7 @@ describe("SoluCXWidget error handling from requestWidgetUrl", () => {
568
568
  });
569
569
 
570
570
  it("calls onError when requestWidgetUrl throws error for missing URL in response", async () => {
571
- mockRequestWidgetUrl.mockRejectedValue(new Error("Widget URL not found in response"));
571
+ mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to get the widget api response."));
572
572
  const onError = jest.fn();
573
573
 
574
574
  const props = {
@@ -582,7 +582,7 @@ describe("SoluCXWidget error handling from requestWidgetUrl", () => {
582
582
  await waitFor(() => {
583
583
  expect(mockRequestWidgetUrl).toHaveBeenCalledTimes(1);
584
584
  expect(onError).toHaveBeenCalledTimes(1);
585
- expect(onError).toHaveBeenCalledWith("Widget URL not found in response");
585
+ expect(onError).toHaveBeenCalledWith("Failed to get the widget api response.");
586
586
  expect(mockSetIsWidgetVisible).toHaveBeenCalledWith(false);
587
587
  expect(queryByTestId("webview")).toBeNull();
588
588
  });
@@ -631,7 +631,7 @@ describe("SoluCXWidget error handling from requestWidgetUrl", () => {
631
631
  });
632
632
 
633
633
  it("widget remains hidden when requestWidgetUrl fails with 404", async () => {
634
- mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to fetch widget URL: 404 Not Found"));
634
+ mockRequestWidgetUrl.mockRejectedValue(new Error("Failed to get error response: 404 Not Found"));
635
635
 
636
636
  const props = {
637
637
  ...baseProps,
@@ -166,7 +166,7 @@ describe('widgetBootstrapService', () => {
166
166
 
167
167
  await expect(
168
168
  requestWidgetUrl('api-key', { customer_id: 'cust' }, 'user-id')
169
- ).rejects.toThrow('Failed to fetch widget URL: 404 Not Found');
169
+ ).rejects.toThrow('Failed to get error response: 404 Not Found');
170
170
  });
171
171
 
172
172
  it('should throw error with status 500', async () => {
@@ -179,7 +179,7 @@ describe('widgetBootstrapService', () => {
179
179
 
180
180
  await expect(
181
181
  requestWidgetUrl('api-key', { customer_id: 'cust' }, 'user-id')
182
- ).rejects.toThrow('Failed to fetch widget URL: 500 Internal Server Error');
182
+ ).rejects.toThrow('Failed to get error response: 500 Internal Server Error');
183
183
  });
184
184
 
185
185
  it('should throw error when fetch is not available', async () => {
@@ -199,7 +199,7 @@ describe('widgetBootstrapService', () => {
199
199
 
200
200
  await expect(
201
201
  requestWidgetUrl('api-key', { customer_id: 'cust' }, 'user-id')
202
- ).rejects.toThrow('Widget URL not found in response');
202
+ ).rejects.toThrow('Failed to get the widget api response.');
203
203
  });
204
204
 
205
205
  it('should throw error when response payload url is null', async () => {
@@ -211,7 +211,7 @@ describe('widgetBootstrapService', () => {
211
211
 
212
212
  await expect(
213
213
  requestWidgetUrl('api-key', { customer_id: 'cust' }, 'user-id')
214
- ).rejects.toThrow('Widget URL not found in response');
214
+ ).rejects.toThrow('Failed to get the widget api response.');
215
215
  });
216
216
  });
217
217
  });
@@ -61,15 +61,16 @@ export async function requestWidgetUrl(
61
61
  const response = await fetch(url, { method: "GET", headers });
62
62
 
63
63
  if (!response.ok) {
64
- throw new Error(`Failed to fetch widget URL: ${response.status} ${response.statusText}`);
64
+ if (!response.json) throw new Error(`Failed to get error response: ${response?.status} ${response.statusText}`);
65
+ const errorPayload: { error: string; message: string; statusCode: number } = await response?.json();
66
+ throw new Error(`status=${response?.status} message=${errorPayload?.message}`);
65
67
  }
66
68
 
67
- const payload: Payload = await response.json();
68
-
69
+ const payload: Payload = await response?.json();
69
70
  if (!payload?.url) {
70
- throw new Error("Widget URL not found in response");
71
+ throw new Error("Failed to get the widget api response.");
71
72
  }
72
-
73
+
73
74
  return payload.url;
74
75
  }
75
76