@oanda/labs-spread-cost-calculator-widget 1.0.1

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/codegen.ts +15 -0
  3. package/dist/main/SpreadCostCalculatorWidget/Main.js +115 -0
  4. package/dist/main/SpreadCostCalculatorWidget/Main.js.map +1 -0
  5. package/dist/main/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.js +54 -0
  6. package/dist/main/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.js.map +1 -0
  7. package/dist/main/SpreadCostCalculatorWidget/ValidationWrapper.js +46 -0
  8. package/dist/main/SpreadCostCalculatorWidget/ValidationWrapper.js.map +1 -0
  9. package/dist/main/SpreadCostCalculatorWidget/constant.js +8 -0
  10. package/dist/main/SpreadCostCalculatorWidget/constant.js.map +1 -0
  11. package/dist/main/SpreadCostCalculatorWidget/index.js +28 -0
  12. package/dist/main/SpreadCostCalculatorWidget/index.js.map +1 -0
  13. package/dist/main/SpreadCostCalculatorWidget/render.js +51 -0
  14. package/dist/main/SpreadCostCalculatorWidget/render.js.map +1 -0
  15. package/dist/main/SpreadCostCalculatorWidget/types.js +6 -0
  16. package/dist/main/SpreadCostCalculatorWidget/types.js.map +1 -0
  17. package/dist/main/SpreadCostCalculatorWidget/useCalculateSpread.js +24 -0
  18. package/dist/main/SpreadCostCalculatorWidget/useCalculateSpread.js.map +1 -0
  19. package/dist/main/SpreadCostCalculatorWidget/useInstrumentChange.js +51 -0
  20. package/dist/main/SpreadCostCalculatorWidget/useInstrumentChange.js.map +1 -0
  21. package/dist/main/SpreadCostCalculatorWidget/utils.js +17 -0
  22. package/dist/main/SpreadCostCalculatorWidget/utils.js.map +1 -0
  23. package/dist/main/gql/types/fragment-masking.js +23 -0
  24. package/dist/main/gql/types/fragment-masking.js.map +1 -0
  25. package/dist/main/gql/types/gql.js +16 -0
  26. package/dist/main/gql/types/gql.js.map +1 -0
  27. package/dist/main/gql/types/graphql.js +223 -0
  28. package/dist/main/gql/types/graphql.js.map +1 -0
  29. package/dist/main/gql/types/index.js +28 -0
  30. package/dist/main/gql/types/index.js.map +1 -0
  31. package/dist/main/gql/validateInstruments.js +16 -0
  32. package/dist/main/gql/validateInstruments.js.map +1 -0
  33. package/dist/main/index.js +28 -0
  34. package/dist/main/index.js.map +1 -0
  35. package/dist/main/translations/index.js +27 -0
  36. package/dist/main/translations/index.js.map +1 -0
  37. package/dist/main/translations/sources/en.json +11 -0
  38. package/dist/main/translations/sources/es.json +11 -0
  39. package/dist/main/translations/sources/th.json +11 -0
  40. package/dist/main/translations/sources/zh_TW.json +11 -0
  41. package/dist/main/translations/translations.js +8 -0
  42. package/dist/main/translations/translations.js.map +1 -0
  43. package/dist/module/SpreadCostCalculatorWidget/Main.js +107 -0
  44. package/dist/module/SpreadCostCalculatorWidget/Main.js.map +1 -0
  45. package/dist/module/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.js +46 -0
  46. package/dist/module/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.js.map +1 -0
  47. package/dist/module/SpreadCostCalculatorWidget/ValidationWrapper.js +38 -0
  48. package/dist/module/SpreadCostCalculatorWidget/ValidationWrapper.js.map +1 -0
  49. package/dist/module/SpreadCostCalculatorWidget/constant.js +2 -0
  50. package/dist/module/SpreadCostCalculatorWidget/constant.js.map +1 -0
  51. package/dist/module/SpreadCostCalculatorWidget/index.js +3 -0
  52. package/dist/module/SpreadCostCalculatorWidget/index.js.map +1 -0
  53. package/dist/module/SpreadCostCalculatorWidget/render.js +48 -0
  54. package/dist/module/SpreadCostCalculatorWidget/render.js.map +1 -0
  55. package/dist/module/SpreadCostCalculatorWidget/types.js +2 -0
  56. package/dist/module/SpreadCostCalculatorWidget/types.js.map +1 -0
  57. package/dist/module/SpreadCostCalculatorWidget/useCalculateSpread.js +17 -0
  58. package/dist/module/SpreadCostCalculatorWidget/useCalculateSpread.js.map +1 -0
  59. package/dist/module/SpreadCostCalculatorWidget/useInstrumentChange.js +44 -0
  60. package/dist/module/SpreadCostCalculatorWidget/useInstrumentChange.js.map +1 -0
  61. package/dist/module/SpreadCostCalculatorWidget/utils.js +10 -0
  62. package/dist/module/SpreadCostCalculatorWidget/utils.js.map +1 -0
  63. package/dist/module/gql/types/fragment-masking.js +15 -0
  64. package/dist/module/gql/types/fragment-masking.js.map +1 -0
  65. package/dist/module/gql/types/gql.js +8 -0
  66. package/dist/module/gql/types/gql.js.map +1 -0
  67. package/dist/module/gql/types/graphql.js +217 -0
  68. package/dist/module/gql/types/graphql.js.map +1 -0
  69. package/dist/module/gql/types/index.js +3 -0
  70. package/dist/module/gql/types/index.js.map +1 -0
  71. package/dist/module/gql/validateInstruments.js +10 -0
  72. package/dist/module/gql/validateInstruments.js.map +1 -0
  73. package/dist/module/index.js +3 -0
  74. package/dist/module/index.js.map +1 -0
  75. package/dist/module/translations/index.js +20 -0
  76. package/dist/module/translations/index.js.map +1 -0
  77. package/dist/module/translations/sources/en.json +11 -0
  78. package/dist/module/translations/sources/es.json +11 -0
  79. package/dist/module/translations/sources/th.json +11 -0
  80. package/dist/module/translations/sources/zh_TW.json +11 -0
  81. package/dist/module/translations/translations.js +2 -0
  82. package/dist/module/translations/translations.js.map +1 -0
  83. package/dist/types/SpreadCostCalculatorWidget/Main.d.ts +4 -0
  84. package/dist/types/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.d.ts +4 -0
  85. package/dist/types/SpreadCostCalculatorWidget/ValidationWrapper.d.ts +4 -0
  86. package/dist/types/SpreadCostCalculatorWidget/constant.d.ts +1 -0
  87. package/dist/types/SpreadCostCalculatorWidget/index.d.ts +2 -0
  88. package/dist/types/SpreadCostCalculatorWidget/render.d.ts +1 -0
  89. package/dist/types/SpreadCostCalculatorWidget/types.d.ts +20 -0
  90. package/dist/types/SpreadCostCalculatorWidget/useCalculateSpread.d.ts +8 -0
  91. package/dist/types/SpreadCostCalculatorWidget/useInstrumentChange.d.ts +12 -0
  92. package/dist/types/SpreadCostCalculatorWidget/utils.d.ts +2 -0
  93. package/dist/types/gql/types/fragment-masking.d.ts +15 -0
  94. package/dist/types/gql/types/gql.d.ts +37 -0
  95. package/dist/types/gql/types/graphql.d.ts +389 -0
  96. package/dist/types/gql/types/index.d.ts +2 -0
  97. package/dist/types/gql/validateInstruments.d.ts +1 -0
  98. package/dist/types/index.d.ts +2 -0
  99. package/dist/types/translations/index.d.ts +4 -0
  100. package/dist/types/translations/translations.d.ts +1 -0
  101. package/index.ts +1 -0
  102. package/lokalise.config.json +18 -0
  103. package/package.json +26 -0
  104. package/src/SpreadCostCalculatorWidget/Main.tsx +138 -0
  105. package/src/SpreadCostCalculatorWidget/SpreadCostCalculatorWidget.tsx +52 -0
  106. package/src/SpreadCostCalculatorWidget/ValidationWrapper.tsx +51 -0
  107. package/src/SpreadCostCalculatorWidget/constant.ts +1 -0
  108. package/src/SpreadCostCalculatorWidget/index.ts +2 -0
  109. package/src/SpreadCostCalculatorWidget/render.tsx +60 -0
  110. package/src/SpreadCostCalculatorWidget/types.ts +27 -0
  111. package/src/SpreadCostCalculatorWidget/useCalculateSpread.ts +38 -0
  112. package/src/SpreadCostCalculatorWidget/useInstrumentChange.ts +47 -0
  113. package/src/SpreadCostCalculatorWidget/utils.ts +12 -0
  114. package/src/gql/types/fragment-masking.ts +66 -0
  115. package/src/gql/types/gql.ts +42 -0
  116. package/src/gql/types/graphql.ts +430 -0
  117. package/src/gql/types/index.ts +2 -0
  118. package/src/gql/validateInstruments.ts +10 -0
  119. package/src/index.ts +2 -0
  120. package/src/translations/index.ts +17 -0
  121. package/src/translations/sources/en.json +11 -0
  122. package/src/translations/sources/es.json +11 -0
  123. package/src/translations/sources/th.json +11 -0
  124. package/src/translations/sources/zh_TW.json +11 -0
  125. package/src/translations/translations.ts +1 -0
  126. package/test/SpreadCostCalculator.test.tsx +31 -0
  127. package/test/useCalculateSpread.test.tsx +131 -0
  128. package/test/useInstrumentChange.test.tsx +54 -0
  129. package/tsconfig.types.json +12 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
5
+ import { renderHook } from '@testing-library/react';
6
+ import { useLiveRatesMessage, useLiveRatesQuery } from '@oanda/labs-widget-common';
7
+ import { useInstrumentChange } from '../src/SpreadCostCalculatorWidget/useInstrumentChange';
8
+
9
+ jest.mock('@oanda/labs-widget-common', () => ({
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ ...jest.requireActual('@oanda/labs-widget-common'),
12
+ useLiveRatesQuery: jest.fn(),
13
+ useLiveRatesMessage: jest.fn(),
14
+ }));
15
+
16
+ describe('useInstrumentChange', () => {
17
+ const initialInstrument = { id: 'ABC_XYZ', label: 'ABC/XYZ' };
18
+
19
+ it('should initialize with the initial instrument and fetch live rates', () => {
20
+ (useLiveRatesQuery as jest.Mock).mockReturnValue({
21
+ target: 'target',
22
+ setQuery: jest.fn(),
23
+ closeQuery: jest.fn(),
24
+ });
25
+ (useLiveRatesMessage as jest.Mock).mockReturnValue({
26
+ update: undefined,
27
+ });
28
+
29
+ const { result } = renderHook(() => useInstrumentChange({ initialInstrument }));
30
+
31
+ expect(result.current.selectedInstrument).toEqual(initialInstrument);
32
+ expect(result.current.pipLocation).toBe(undefined);
33
+ expect(result.current.initialSpread).toBe(undefined);
34
+ expect(useLiveRatesQuery).toHaveBeenCalled();
35
+ });
36
+
37
+ it('should update pipLocation and spread when live rates update', () => {
38
+ const setQueryMock = jest.fn();
39
+ (useLiveRatesQuery as jest.Mock).mockReturnValue({
40
+ target: 'target',
41
+ setQuery: setQueryMock,
42
+ closeQuery: jest.fn(),
43
+ });
44
+ const updateMock = { symbol: 'ABC_XYZ', pipLocation: -4, spread: 1.2 };
45
+ (useLiveRatesMessage as jest.Mock).mockReturnValue({
46
+ update: updateMock,
47
+ });
48
+
49
+ const { result } = renderHook(() => useInstrumentChange({ initialInstrument }));
50
+
51
+ expect(result.current.pipLocation).toBe(-4);
52
+ expect(result.current.initialSpread).toBe(1.2);
53
+ });
54
+ });
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.types.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ "outDir": "./dist",
6
+ "declarationDir": "./dist/types"
7
+ },
8
+ "include": [
9
+ "./src/**/*",
10
+ "../../types/**/*"
11
+ ]
12
+ }