@faststore/core 4.4.1-dev.0 → 4.5.0-dev.0
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.
- package/.turbo/turbo-generate.log +4 -4
- package/.turbo/turbo-test.log +66 -52
- package/@generated/cached-operations.json +2 -0
- package/@generated/gql.ts +12 -0
- package/@generated/graphql.ts +73 -0
- package/@generated/persisted-documents.json +2 -0
- package/@generated/schema.graphql +59 -0
- package/CHANGELOG.md +6 -0
- package/package.json +6 -6
- package/src/components/account/Drawer/OrganizationDrawer/OrganizationDrawer.tsx +5 -1
- package/src/components/account/Drawer/OrganizationDrawer/OrganizationDrawerBody.tsx +16 -6
- package/src/components/account/Layout/Layout.tsx +14 -5
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotes.tsx +170 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotesTable/MyAccountListQuotesTable.tsx +194 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountListQuotesTable/MyAccountQuoteStatusBadge.tsx +15 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesFilterSlider/MyAccountQuotesFilterSlider.tsx +162 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesFilterSlider/section.module.scss +49 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesSelectedTags/MyAccountQuotesSelectedTags.tsx +125 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesStatusSelector/MyAccountQuotesStatusSelector.tsx +107 -0
- package/src/components/account/quotes/MyAccountListQuotes/MyAccountQuotesStatusSelector/styles.module.scss +144 -0
- package/src/components/account/quotes/MyAccountListQuotes/index.ts +2 -0
- package/src/components/account/quotes/MyAccountListQuotes/quoteFilters.ts +89 -0
- package/src/components/account/quotes/MyAccountListQuotes/styles.module.scss +174 -0
- package/src/customizations/src/myAccount/extensions/quotes/after.tsx +5 -0
- package/src/customizations/src/myAccount/extensions/quotes/before.tsx +5 -0
- package/src/pages/pvt/account/quotes/index.tsx +264 -0
- package/src/sdk/account/getMyAccountRoutes.ts +7 -0
- package/src/utils/quoteStatus.ts +27 -0
- package/test/components/account/Layout.test.tsx +62 -0
- package/test/components/account/OrganizationDrawerBody.test.tsx +52 -0
- package/test/components/quotes/MyAccountListQuotes.test.tsx +232 -0
- package/test/components/quotes/MyAccountListQuotesTable.test.tsx +240 -0
- package/test/components/quotes/MyAccountQuoteStatusBadge.test.tsx +28 -0
- package/test/components/quotes/MyAccountQuotesFilterSlider.test.tsx +152 -0
- package/test/components/quotes/MyAccountQuotesSelectedTags.test.tsx +122 -0
- package/test/components/quotes/MyAccountQuotesStatusSelector.test.tsx +85 -0
- package/test/components/quotes/quoteFilters.test.ts +185 -0
- package/test/sdk/account/getMyAccountRoutes.test.ts +90 -0
- package/test/server/index.test.ts +2 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@4.4.0 generate /home/runner/work/faststore/faststore/packages/core
|
|
2
|
+
> @faststore/core@4.4.1-dev.0 generate /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> pnpm run gen-types && pnpm run cache-graphql
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @faststore/core@4.4.0 gen-types /home/runner/work/faststore/faststore/packages/core
|
|
6
|
+
> @faststore/core@4.4.1-dev.0 gen-types /home/runner/work/faststore/faststore/packages/core
|
|
7
7
|
> node ../cli/bin/run generate-types .
|
|
8
8
|
|
|
9
9
|
[33m[STARTED][39m Parse Configuration
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
[32m[COMPLETED][39m Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
|
|
20
20
|
[32m[COMPLETED][39m Generate outputs
|
|
21
21
|
|
|
22
|
-
> @faststore/core@4.4.0 cache-graphql /home/runner/work/faststore/faststore/packages/core
|
|
22
|
+
> @faststore/core@4.4.1-dev.0 cache-graphql /home/runner/work/faststore/faststore/packages/core
|
|
23
23
|
> node ../cli/bin/run cache-graphql --config=./discovery.config.default.js --queries=./@generated/persisted-documents.json
|
|
24
24
|
|
|
25
25
|
[Info] - Config file location: /home/runner/work/faststore/faststore/packages/core/discovery.config.default.js
|
|
26
26
|
[Info] - Persisted documents at: /home/runner/work/faststore/faststore/packages/core/@generated/persisted-documents.json
|
|
27
27
|
[Info] - Cached operations output: /home/runner/work/faststore/faststore/packages/core/@generated/cached-operations.json
|
|
28
28
|
[Success] - GraphQL queries cached with success: 🎉
|
|
29
|
-
Queries: ServerAccountPageQuery, ServerCollectionPageQuery, ServerProductQuery, ServerOrderDetailsQuery, ServerListOrdersQuery, ServerProfileQuery, ServerSecurity, ServerUserDetailsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
|
|
29
|
+
Queries: ServerAccountPageQuery, ServerCollectionPageQuery, ServerProductQuery, ServerOrderDetailsQuery, ServerListOrdersQuery, ServerProfileQuery, ServerListQuotesQuery, ServerQuotesOrganizationMemberQuery, ServerSecurity, ServerUserDetailsQuery, ValidateUser, ClientPickupPointsQuery, OrderEntryOperationQuery, OrderFormItemsQuery, ClientProductCountQuery, ClientAllVariantProductsQuery, ClientManyProductsQueryWithSearchId, ClientProductGalleryQuery, ClientProductQuery, ClientManyProductsQuery, ClientManyProductsSelectedQuery, ClientProfileQuery, ClientSearchSuggestionsQuery, ClientTopSearchSuggestionsQuery, ClientShippingSimulationQuery, ServerManyProductsQuery
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@4.4.0 test /home/runner/work/faststore/faststore/packages/core
|
|
2
|
+
> @faststore/core@4.4.1-dev.0 test /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv4.0.7 [39m[90m/home/runner/work/faststore/faststore/packages/core[39m
|
|
7
7
|
|
|
8
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.browser.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m
|
|
9
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/getInitialSession.browser.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
8
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.browser.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
9
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/getInitialSession.browser.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 46[2mms[22m[39m
|
|
10
|
+
[32m✓[39m [30m[46m browser [49m[39m test/utils/isLocalHost.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
11
|
+
[90mstderr[2m | test/sdk/localization/store-url.browser.test.ts
|
|
12
|
+
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
13
|
+
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:119:27[90m)[39m
|
|
14
|
+
at onValidate [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/useStore.ts:18:20[90m)[39m
|
|
15
|
+
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
16
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
17
|
+
|
|
10
18
|
[90mstderr[2m | test/pages/password-protection.browser.test.tsx[2m > [22m[2mPasswordProtectionLogin[2m > [22m[2mposts the password and redirects to the requested return path
|
|
11
19
|
[22m[39mWarning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
|
|
12
20
|
|
|
@@ -92,13 +100,6 @@ act(() => {
|
|
|
92
100
|
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
|
|
93
101
|
at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
|
|
94
102
|
|
|
95
|
-
[90mstderr[2m | test/sdk/localization/store-url.browser.test.ts
|
|
96
|
-
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
97
|
-
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:119:27[90m)[39m
|
|
98
|
-
at onValidate [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/useStore.ts:18:20[90m)[39m
|
|
99
|
-
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
100
|
-
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
101
|
-
|
|
102
103
|
[90mstderr[2m | test/pages/password-protection.browser.test.tsx[2m > [22m[2mPasswordProtectionLogin[2m > [22m[2muses the fallback invalid-password message when API omits an error
|
|
103
104
|
[22m[39mWarning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
|
|
104
105
|
|
|
@@ -147,7 +148,6 @@ act(() => {
|
|
|
147
148
|
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
|
|
148
149
|
at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
|
|
149
150
|
|
|
150
|
-
[32m✓[39m [30m[46m browser [49m[39m test/utils/isLocalHost.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
151
151
|
[90mstderr[2m | test/pages/password-protection.browser.test.tsx[2m > [22m[2mPasswordProtectionLogin[2m > [22m[2mshows service unavailable when the response is not a login payload
|
|
152
152
|
[22m[39mWarning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
|
|
153
153
|
|
|
@@ -244,16 +244,16 @@ act(() => {
|
|
|
244
244
|
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
|
|
245
245
|
at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
|
|
246
246
|
|
|
247
|
-
[32m✓[39m [30m[46m browser [49m[39m test/pages/password-protection.browser.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m
|
|
248
|
-
[33m[2m✓[22m[39m renders the password protection form [33m
|
|
249
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/localization/store-url.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m
|
|
250
|
-
[32m✓[39m [30m[
|
|
251
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
252
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
253
|
-
[32m✓[39m [30m[
|
|
254
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/bindingSelector.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m
|
|
255
|
-
[32m✓[39m [30m[43m node [49m[39m test/pages/api/unlock.test.ts [2m([22m[2m15 tests[22m[2m)[22m[33m
|
|
256
|
-
[33m[2m✓[22m[39m returns 405 for non-POST requests [33m
|
|
247
|
+
[32m✓[39m [30m[46m browser [49m[39m test/pages/password-protection.browser.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m 2105[2mms[22m[39m
|
|
248
|
+
[33m[2m✓[22m[39m renders the password protection form [33m 967[2mms[22m[39m
|
|
249
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/localization/store-url.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 26[2mms[22m[39m
|
|
250
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
251
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/bindingPaths.test.ts [2m([22m[2m71 tests[22m[2m)[22m[32m 149[2mms[22m[39m
|
|
252
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/password-protection-service.test.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 144[2mms[22m[39m
|
|
253
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/match-url.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 32[2mms[22m[39m
|
|
254
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/bindingSelector.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 32[2mms[22m[39m
|
|
255
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/unlock.test.ts [2m([22m[2m15 tests[22m[2m)[22m[33m 801[2mms[22m[39m
|
|
256
|
+
[33m[2m✓[22m[39m returns 405 for non-POST requests [33m 599[2mms[22m[39m
|
|
257
257
|
[90mstderr[2m | test/components/search/SearchInputComponent.test.tsx
|
|
258
258
|
[22m[39mWarning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
|
|
259
259
|
|
|
@@ -317,18 +317,24 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
|
|
|
317
317
|
at Suspense
|
|
318
318
|
at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
|
|
319
319
|
|
|
320
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInputComponent.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[
|
|
321
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/cookieCacheBusting.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m
|
|
322
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/useBindingSelector.test.tsx [2m([22m[2m12 tests[22m[2m)[22m[32m
|
|
323
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/search/useSearchHistory.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m
|
|
324
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/clearCookies.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m
|
|
325
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/multipleTemplates.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
326
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/localizeRedirectDestination.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
320
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInputComponent.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m 303[2mms[22m[39m
|
|
321
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/cookieCacheBusting.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 62[2mms[22m[39m
|
|
322
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/useBindingSelector.test.tsx [2m([22m[2m12 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
323
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/search/useSearchHistory.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 253[2mms[22m[39m
|
|
324
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/clearCookies.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m 65[2mms[22m[39m
|
|
327
325
|
[90mstderr[2m | test/sdk/account/useSetPassword.test.ts[2m > [22m[2museSetPassword[2m > [22m[2mmaps wrongcredentials error responses to the existing message
|
|
328
326
|
[22m[39mSet password request failed: Bad Request
|
|
329
327
|
|
|
330
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/useSetPassword.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
331
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
328
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/useSetPassword.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
329
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotesTable.test.tsx [2m([22m[2m12 tests[22m[2m)[22m[33m 424[2mms[22m[39m
|
|
330
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/quoteFilters.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 25[2mms[22m[39m
|
|
331
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/multipleTemplates.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
332
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotes.test.tsx [2m([22m[2m9 tests[22m[2m)[22m[33m 837[2mms[22m[39m
|
|
333
|
+
[33m[2m✓[22m[39m navigates with the search term on blur [33m 362[2mms[22m[39m
|
|
334
|
+
[33m[2m✓[22m[39m navigates without a label param when the search is cleared [33m 358[2mms[22m[39m
|
|
335
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/localizeRedirectDestination.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
336
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryOperation.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 49[2mms[22m[39m
|
|
337
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryUpload.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 56[2mms[22m[39m
|
|
332
338
|
[90mstderr[2m | test/pages/api/graphql.test.ts[2m > [22m[2m/api/graphql error status propagation[2m > [22m[2mpropagates the upstream 400 from a wrapped BadRequestError instead of 500
|
|
333
339
|
[22m[39mGraphql execution returned with error: [
|
|
334
340
|
{
|
|
@@ -375,30 +381,38 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
|
|
|
375
381
|
{ message: [32m'bad'[39m, status: [33m400[39m, type: [32m'BadRequestError'[39m }
|
|
376
382
|
]
|
|
377
383
|
|
|
378
|
-
[32m✓[39m [30m[43m node [49m[39m test/pages/api/graphql.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m
|
|
379
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryUpload.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 47[2mms[22m[39m
|
|
380
|
-
[32m✓[39m [30m[43m node [49m[39m test/proxy.localization.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 79[2mms[22m[39m
|
|
384
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/graphql.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 30[2mms[22m[39m
|
|
381
385
|
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntry.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 43[2mms[22m[39m
|
|
382
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
383
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
384
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
388
|
-
[32m✓[39m [30m[43m node [49m[39m test/server/
|
|
389
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
390
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/
|
|
386
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesFilterSlider.test.tsx [2m([22m[2m5 tests[22m[2m)[22m[32m 173[2mms[22m[39m
|
|
387
|
+
[32m✓[39m [30m[43m node [49m[39m test/proxy.localization.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 66[2mms[22m[39m
|
|
388
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/index.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 919[2mms[22m[39m
|
|
389
|
+
[33m[2m✓[22m[39m should return a valid merged GraphQL schema [33m 318[2mms[22m[39m
|
|
390
|
+
[33m[2m✓[22m[39m should handle options and execute [33m 338[2mms[22m[39m
|
|
391
|
+
[32m✓[39m [30m[43m node [49m[39m test/proxy.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
392
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/webops-api.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
393
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesSelectedTags.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m 113[2mms[22m[39m
|
|
394
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderFormItems.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
395
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/cms/global.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
396
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/getMyAccountRoutes.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
397
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/content/service.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
398
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/store-url.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
399
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/getRequestHostname.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
400
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/auth/useAuth.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
401
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesStatusSelector.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[32m 143[2mms[22m[39m
|
|
391
402
|
[32m✓[39m [30m[43m node [49m[39m test/utils/validateSessionRefreshToken.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
392
|
-
[32m✓[39m [30m[43m node [49m[39m test/pages/api/preview.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
393
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInput.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
403
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/preview.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
404
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInput.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
405
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/cms/index.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
394
406
|
[32m✓[39m [30m[43m node [49m[39m test/utils/unlockResponse.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
395
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
407
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/account/Layout.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m 77[2mms[22m[39m
|
|
396
408
|
[32m✓[39m [30m[43m node [49m[39m test/utils/isLocalHost.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
397
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
398
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
399
|
-
|
|
400
|
-
[
|
|
401
|
-
|
|
402
|
-
[2m
|
|
403
|
-
[2m
|
|
409
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/account/OrganizationDrawerBody.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 55[2mms[22m[39m
|
|
410
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/userOrderStatus.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
411
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/auth/ProfileChallenge.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
412
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuoteStatusBadge.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
413
|
+
|
|
414
|
+
[2m Test Files [22m [1m[32m51 passed[39m[22m[90m (51)[39m
|
|
415
|
+
[2m Tests [22m [1m[32m458 passed[39m[22m[90m (458)[39m
|
|
416
|
+
[2m Start at [22m 20:08:00
|
|
417
|
+
[2m Duration [22m 32.38s[2m (transform 8.20s, setup 0ms, collect 24.59s, tests 7.46s, environment 42.93s, prepare 1.38s)[22m
|
|
404
418
|
|
package/@generated/gql.ts
CHANGED
|
@@ -35,6 +35,8 @@ type Documents = {
|
|
|
35
35
|
"\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerOrderDetailsQueryDocument,
|
|
36
36
|
"\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerListOrdersQueryDocument,
|
|
37
37
|
"\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n": typeof types.ServerProfileQueryDocument,
|
|
38
|
+
"\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n": typeof types.ServerListQuotesQueryDocument,
|
|
39
|
+
"\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n": typeof types.ServerQuotesOrganizationMemberQueryDocument,
|
|
38
40
|
"\n query ServerSecurity {\n accountProfile {\n name\n }\n userDetails {\n email\n }\n }\n": typeof types.ServerSecurityDocument,
|
|
39
41
|
"\n query ServerUserDetailsQuery {\n accountProfile {\n name\n }\n userDetails {\n username\n name\n email\n phone\n role\n orgUnit\n }\n }\n": typeof types.ServerUserDetailsQueryDocument,
|
|
40
42
|
"\n mutation CancelOrderMutation($data: IUserOrderCancel!) {\n cancelOrder(data: $data) {\n data\n }\n }\n": typeof types.CancelOrderMutationDocument,
|
|
@@ -82,6 +84,8 @@ const documents: Documents = {
|
|
|
82
84
|
"\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerOrderDetailsQueryDocument,
|
|
83
85
|
"\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerListOrdersQueryDocument,
|
|
84
86
|
"\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n": types.ServerProfileQueryDocument,
|
|
87
|
+
"\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n": types.ServerListQuotesQueryDocument,
|
|
88
|
+
"\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n": types.ServerQuotesOrganizationMemberQueryDocument,
|
|
85
89
|
"\n query ServerSecurity {\n accountProfile {\n name\n }\n userDetails {\n email\n }\n }\n": types.ServerSecurityDocument,
|
|
86
90
|
"\n query ServerUserDetailsQuery {\n accountProfile {\n name\n }\n userDetails {\n username\n name\n email\n phone\n role\n orgUnit\n }\n }\n": types.ServerUserDetailsQueryDocument,
|
|
87
91
|
"\n mutation CancelOrderMutation($data: IUserOrderCancel!) {\n cancelOrder(data: $data) {\n data\n }\n }\n": types.CancelOrderMutationDocument,
|
|
@@ -189,6 +193,14 @@ export function gql(source: "\n query ServerListOrdersQuery ($page: Int,$perPag
|
|
|
189
193
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
190
194
|
*/
|
|
191
195
|
export function gql(source: "\n query ServerProfileQuery {\n accountProfile {\n name\n email\n id\n }\n }\n"): typeof import('./graphql').ServerProfileQueryDocument;
|
|
196
|
+
/**
|
|
197
|
+
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
198
|
+
*/
|
|
199
|
+
export function gql(source: "\n query ServerListQuotesQuery ($page: Int, $perPage: Int, $status: [String], $createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String) {\n listUserQuotes (page: $page, perPage: $perPage, status: $status, createdAtFrom: $createdAtFrom, createdAtTo: $createdAtTo, expiresAtFrom: $expiresAtFrom, expiresAtTo: $expiresAtTo, label: $label) {\n list {\n id\n status\n label\n createdAt\n expiresAt\n amount\n createdBy\n }\n paging {\n total\n currentPage\n perPage\n }\n }\n }\n"): typeof import('./graphql').ServerListQuotesQueryDocument;
|
|
200
|
+
/**
|
|
201
|
+
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
202
|
+
*/
|
|
203
|
+
export function gql(source: "\n query ServerQuotesOrganizationMemberQuery {\n isOrganizationMember\n }\n"): typeof import('./graphql').ServerQuotesOrganizationMemberQueryDocument;
|
|
192
204
|
/**
|
|
193
205
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
194
206
|
*/
|
package/@generated/graphql.ts
CHANGED
|
@@ -873,8 +873,12 @@ export type Query = {
|
|
|
873
873
|
allProducts: StoreProductConnection;
|
|
874
874
|
/** Returns the details of a collection based on the collection slug. */
|
|
875
875
|
collection: StoreCollection;
|
|
876
|
+
/** Returns whether the current authenticated user belongs to a B2B organization unit. */
|
|
877
|
+
isOrganizationMember: Scalars['Boolean']['output'];
|
|
876
878
|
/** Returns the list of Orders that the User can view. */
|
|
877
879
|
listUserOrders: Maybe<UserOrderListMinimalResult>;
|
|
880
|
+
/** Returns the list of Quotes that the authenticated Buyer can view. */
|
|
881
|
+
listUserQuotes: Maybe<UserQuoteListResult>;
|
|
878
882
|
/** Returns the status of an Order Entry Service operation by its ID. */
|
|
879
883
|
orderEntryOperation: Maybe<StoreOrderEntryOperationStatus>;
|
|
880
884
|
/** Returns the items in an orderForm by its ID. */
|
|
@@ -935,6 +939,18 @@ export type QueryListUserOrdersArgs = {
|
|
|
935
939
|
};
|
|
936
940
|
|
|
937
941
|
|
|
942
|
+
export type QueryListUserQuotesArgs = {
|
|
943
|
+
createdAtFrom: InputMaybe<Scalars['String']['input']>;
|
|
944
|
+
createdAtTo: InputMaybe<Scalars['String']['input']>;
|
|
945
|
+
expiresAtFrom: InputMaybe<Scalars['String']['input']>;
|
|
946
|
+
expiresAtTo: InputMaybe<Scalars['String']['input']>;
|
|
947
|
+
label: InputMaybe<Scalars['String']['input']>;
|
|
948
|
+
page: InputMaybe<Scalars['Int']['input']>;
|
|
949
|
+
perPage: InputMaybe<Scalars['Int']['input']>;
|
|
950
|
+
status: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
|
951
|
+
};
|
|
952
|
+
|
|
953
|
+
|
|
938
954
|
export type QueryOrderEntryOperationArgs = {
|
|
939
955
|
operationId: Scalars['String']['input'];
|
|
940
956
|
};
|
|
@@ -2560,6 +2576,42 @@ export type UserOrderTransactions = {
|
|
|
2560
2576
|
transactionId: Maybe<Scalars['String']['output']>;
|
|
2561
2577
|
};
|
|
2562
2578
|
|
|
2579
|
+
/** Pagination metadata for the quotes list. */
|
|
2580
|
+
export type UserQuoteListPaging = {
|
|
2581
|
+
/** Current page number (1-based). */
|
|
2582
|
+
currentPage: Scalars['Int']['output'];
|
|
2583
|
+
/** Number of items per page. */
|
|
2584
|
+
perPage: Scalars['Int']['output'];
|
|
2585
|
+
/** Total number of quotes matching the query. */
|
|
2586
|
+
total: Scalars['Int']['output'];
|
|
2587
|
+
};
|
|
2588
|
+
|
|
2589
|
+
/** Result returned by the listUserQuotes query. */
|
|
2590
|
+
export type UserQuoteListResult = {
|
|
2591
|
+
/** Array of quote summaries for the current page. */
|
|
2592
|
+
list: Array<UserQuoteSummary>;
|
|
2593
|
+
/** Pagination information. */
|
|
2594
|
+
paging: UserQuoteListPaging;
|
|
2595
|
+
};
|
|
2596
|
+
|
|
2597
|
+
/** Summary of a quote returned in list results. */
|
|
2598
|
+
export type UserQuoteSummary = {
|
|
2599
|
+
/** Total amount of the quote. */
|
|
2600
|
+
amount: Scalars['Float']['output'];
|
|
2601
|
+
/** ISO 8601 date-time when the quote was created. */
|
|
2602
|
+
createdAt: Scalars['String']['output'];
|
|
2603
|
+
/** Name or email of the user who created the quote. */
|
|
2604
|
+
createdBy: Maybe<Scalars['String']['output']>;
|
|
2605
|
+
/** ISO 8601 date-time when the quote expires. */
|
|
2606
|
+
expiresAt: Scalars['String']['output'];
|
|
2607
|
+
/** Unique identifier of the quote. */
|
|
2608
|
+
id: Scalars['String']['output'];
|
|
2609
|
+
/** Optional label assigned to the quote. */
|
|
2610
|
+
label: Maybe<Scalars['String']['output']>;
|
|
2611
|
+
/** Status of the quote. */
|
|
2612
|
+
status: Scalars['String']['output'];
|
|
2613
|
+
};
|
|
2614
|
+
|
|
2563
2615
|
export type ValidateUserData = {
|
|
2564
2616
|
/** Indicates if the user is valid. */
|
|
2565
2617
|
isValid: Scalars['Boolean']['output'];
|
|
@@ -2645,6 +2697,25 @@ export type ServerProfileQueryQueryVariables = Exact<{ [key: string]: never; }>;
|
|
|
2645
2697
|
|
|
2646
2698
|
export type ServerProfileQueryQuery = { accountProfile: { name: string | null, email: string | null, id: string | null } };
|
|
2647
2699
|
|
|
2700
|
+
export type ServerListQuotesQueryQueryVariables = Exact<{
|
|
2701
|
+
page: InputMaybe<Scalars['Int']['input']>;
|
|
2702
|
+
perPage: InputMaybe<Scalars['Int']['input']>;
|
|
2703
|
+
status: InputMaybe<Array<InputMaybe<Scalars['String']['input']>> | InputMaybe<Scalars['String']['input']>>;
|
|
2704
|
+
createdAtFrom: InputMaybe<Scalars['String']['input']>;
|
|
2705
|
+
createdAtTo: InputMaybe<Scalars['String']['input']>;
|
|
2706
|
+
expiresAtFrom: InputMaybe<Scalars['String']['input']>;
|
|
2707
|
+
expiresAtTo: InputMaybe<Scalars['String']['input']>;
|
|
2708
|
+
label: InputMaybe<Scalars['String']['input']>;
|
|
2709
|
+
}>;
|
|
2710
|
+
|
|
2711
|
+
|
|
2712
|
+
export type ServerListQuotesQueryQuery = { listUserQuotes: { list: Array<{ id: string, status: string, label: string | null, createdAt: string, expiresAt: string, amount: number, createdBy: string | null }>, paging: { total: number, currentPage: number, perPage: number } } | null };
|
|
2713
|
+
|
|
2714
|
+
export type ServerQuotesOrganizationMemberQueryQueryVariables = Exact<{ [key: string]: never; }>;
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
export type ServerQuotesOrganizationMemberQueryQuery = { isOrganizationMember: boolean };
|
|
2718
|
+
|
|
2648
2719
|
export type ServerSecurityQueryVariables = Exact<{ [key: string]: never; }>;
|
|
2649
2720
|
|
|
2650
2721
|
|
|
@@ -3367,6 +3438,8 @@ export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerPr
|
|
|
3367
3438
|
export const ServerOrderDetailsQueryDocument = {"__meta__":{"operationName":"ServerOrderDetailsQuery","operationHash":"bdf677bbccce12186a5ef15aebdce46585a99782"}} as unknown as TypedDocumentString<ServerOrderDetailsQueryQuery, ServerOrderDetailsQueryQueryVariables>;
|
|
3368
3439
|
export const ServerListOrdersQueryDocument = {"__meta__":{"operationName":"ServerListOrdersQuery","operationHash":"70d06de1da9c11f10ebde31b66fd74eccd456af5"}} as unknown as TypedDocumentString<ServerListOrdersQueryQuery, ServerListOrdersQueryQueryVariables>;
|
|
3369
3440
|
export const ServerProfileQueryDocument = {"__meta__":{"operationName":"ServerProfileQuery","operationHash":"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f"}} as unknown as TypedDocumentString<ServerProfileQueryQuery, ServerProfileQueryQueryVariables>;
|
|
3441
|
+
export const ServerListQuotesQueryDocument = {"__meta__":{"operationName":"ServerListQuotesQuery","operationHash":"cce44921361a629c793364adb43319601cc0aa33"}} as unknown as TypedDocumentString<ServerListQuotesQueryQuery, ServerListQuotesQueryQueryVariables>;
|
|
3442
|
+
export const ServerQuotesOrganizationMemberQueryDocument = {"__meta__":{"operationName":"ServerQuotesOrganizationMemberQuery","operationHash":"9ba9119f2a361c83af8ecc703cb28f915df10ac8"}} as unknown as TypedDocumentString<ServerQuotesOrganizationMemberQueryQuery, ServerQuotesOrganizationMemberQueryQueryVariables>;
|
|
3370
3443
|
export const ServerSecurityDocument = {"__meta__":{"operationName":"ServerSecurity","operationHash":"0890ba3456c40a426893b80b698df7a84cfdd6a1"}} as unknown as TypedDocumentString<ServerSecurityQuery, ServerSecurityQueryVariables>;
|
|
3371
3444
|
export const ServerUserDetailsQueryDocument = {"__meta__":{"operationName":"ServerUserDetailsQuery","operationHash":"630ec1f47f2710ce3d7895e9131482641f30c837"}} as unknown as TypedDocumentString<ServerUserDetailsQueryQuery, ServerUserDetailsQueryQueryVariables>;
|
|
3372
3445
|
export const CancelOrderMutationDocument = {"__meta__":{"operationName":"CancelOrderMutation","operationHash":"e2b06da6840614d3c72768e56579b9d3b8e80802"}} as unknown as TypedDocumentString<CancelOrderMutationMutation, CancelOrderMutationMutationVariables>;
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
"bdf677bbccce12186a5ef15aebdce46585a99782": "query ServerOrderDetailsQuery($orderId: String!) { accountProfile { name } userOrder(orderId: $orderId) { allowCancellation budgetData { budgets { allocations { id linkedEntity { id } reservations } balance { remaining } id name } } canProcessOrderAuthorization clientProfileData { corporateName email firstName isCorporate lastName phone } creationDate customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity sellingPrice tax taxPriceTagsTotal total uniqueId } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } ruleForAuthorization { dimensionId orderAuthorizationId rule { authorizationData { authorizers { authorizationDate email id type } requireAllApprovals } authorizedEmails doId id isUserAuthorized isUserNextAuthorizer name notification priority scoreInterval { accept deny } status timeout trigger { condition { conditionType description expression greatherThan lessThan } effect { description effectType funcPath } } } } shopper { email firstName lastName phone } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
|
|
6
6
|
"70d06de1da9c11f10ebde31b66fd74eccd456af5": "query ServerListOrdersQuery($clientEmail: String, $dateFinal: String, $dateInitial: String, $page: Int, $pendingMyApproval: Boolean, $perPage: Int, $status: [String], $text: String) { accountProfile { name } listUserOrders( page: $page perPage: $perPage status: $status dateInitial: $dateInitial dateFinal: $dateFinal text: $text clientEmail: $clientEmail pendingMyApproval: $pendingMyApproval ) { list { ShippingEstimatedDate clientName creationDate currencyCode customFields { type value } items { description ean id price productId quantity refId seller sellingPrice } orderId status statusDescription totalValue } paging { currentPage pages perPage total } } }",
|
|
7
7
|
"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",
|
|
8
|
+
"cce44921361a629c793364adb43319601cc0aa33": "query ServerListQuotesQuery($createdAtFrom: String, $createdAtTo: String, $expiresAtFrom: String, $expiresAtTo: String, $label: String, $page: Int, $perPage: Int, $status: [String]) { listUserQuotes( page: $page perPage: $perPage status: $status createdAtFrom: $createdAtFrom createdAtTo: $createdAtTo expiresAtFrom: $expiresAtFrom expiresAtTo: $expiresAtTo label: $label ) { list { amount createdAt createdBy expiresAt id label status } paging { currentPage perPage total } } }",
|
|
9
|
+
"9ba9119f2a361c83af8ecc703cb28f915df10ac8": "query ServerQuotesOrganizationMemberQuery { isOrganizationMember }",
|
|
8
10
|
"0890ba3456c40a426893b80b698df7a84cfdd6a1": "query ServerSecurity { accountProfile { name } userDetails { email } }",
|
|
9
11
|
"630ec1f47f2710ce3d7895e9131482641f30c837": "query ServerUserDetailsQuery { accountProfile { name } userDetails { email name orgUnit phone role username } }",
|
|
10
12
|
"e2b06da6840614d3c72768e56579b9d3b8e80802": "mutation CancelOrderMutation($data: IUserOrderCancel!) { cancelOrder(data: $data) { data } }",
|
|
@@ -941,6 +941,25 @@ type Query {
|
|
|
941
941
|
"""Filter orders that are pending user approval."""
|
|
942
942
|
pendingMyApproval: Boolean
|
|
943
943
|
): UserOrderListMinimalResult @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
944
|
+
"""Returns the list of Quotes that the authenticated Buyer can view."""
|
|
945
|
+
listUserQuotes(
|
|
946
|
+
"""Page number (1-based)."""
|
|
947
|
+
page: Int
|
|
948
|
+
"""Number of items per page."""
|
|
949
|
+
perPage: Int
|
|
950
|
+
"""Filter by quote status values."""
|
|
951
|
+
status: [String]
|
|
952
|
+
"""Filter quotes created on or after this ISO 8601 date-time."""
|
|
953
|
+
createdAtFrom: String
|
|
954
|
+
"""Filter quotes created on or before this ISO 8601 date-time."""
|
|
955
|
+
createdAtTo: String
|
|
956
|
+
"""Filter quotes expiring on or after this ISO 8601 date-time."""
|
|
957
|
+
expiresAtFrom: String
|
|
958
|
+
"""Filter quotes expiring on or before this ISO 8601 date-time."""
|
|
959
|
+
expiresAtTo: String
|
|
960
|
+
"""Filter quotes by label (partial match)."""
|
|
961
|
+
label: String
|
|
962
|
+
): UserQuoteListResult @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
944
963
|
"""Returns information about the current user details."""
|
|
945
964
|
userDetails: StoreUserDetails! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
946
965
|
"""
|
|
@@ -949,6 +968,10 @@ type Query {
|
|
|
949
968
|
accountProfile: StoreAccountProfile! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
950
969
|
"""Returns information about the user validation."""
|
|
951
970
|
validateUser: ValidateUserData @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
971
|
+
"""
|
|
972
|
+
Returns whether the current authenticated user belongs to a B2B organization unit.
|
|
973
|
+
"""
|
|
974
|
+
isOrganizationMember: Boolean! @auth @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
|
|
952
975
|
"""Returns a list of pickup points near to the given geo coordinates."""
|
|
953
976
|
pickupPoints(
|
|
954
977
|
"""Geo coordinates input."""
|
|
@@ -2588,6 +2611,42 @@ type UserOrderTransactions {
|
|
|
2588
2611
|
payments: [UserOrderPayments]
|
|
2589
2612
|
}
|
|
2590
2613
|
|
|
2614
|
+
"""Pagination metadata for the quotes list."""
|
|
2615
|
+
type UserQuoteListPaging {
|
|
2616
|
+
"""Total number of quotes matching the query."""
|
|
2617
|
+
total: Int!
|
|
2618
|
+
"""Current page number (1-based)."""
|
|
2619
|
+
currentPage: Int!
|
|
2620
|
+
"""Number of items per page."""
|
|
2621
|
+
perPage: Int!
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2624
|
+
"""Result returned by the listUserQuotes query."""
|
|
2625
|
+
type UserQuoteListResult {
|
|
2626
|
+
"""Array of quote summaries for the current page."""
|
|
2627
|
+
list: [UserQuoteSummary!]!
|
|
2628
|
+
"""Pagination information."""
|
|
2629
|
+
paging: UserQuoteListPaging!
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
"""Summary of a quote returned in list results."""
|
|
2633
|
+
type UserQuoteSummary {
|
|
2634
|
+
"""Unique identifier of the quote."""
|
|
2635
|
+
id: String!
|
|
2636
|
+
"""Status of the quote."""
|
|
2637
|
+
status: String!
|
|
2638
|
+
"""Optional label assigned to the quote."""
|
|
2639
|
+
label: String
|
|
2640
|
+
"""ISO 8601 date-time when the quote was created."""
|
|
2641
|
+
createdAt: String!
|
|
2642
|
+
"""ISO 8601 date-time when the quote expires."""
|
|
2643
|
+
expiresAt: String!
|
|
2644
|
+
"""Total amount of the quote."""
|
|
2645
|
+
amount: Float!
|
|
2646
|
+
"""Name or email of the user who created the quote."""
|
|
2647
|
+
createdBy: String
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2591
2650
|
type ValidateUserData {
|
|
2592
2651
|
"""Indicates if the user is valid."""
|
|
2593
2652
|
isValid: Boolean!
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.5.0-dev.0](https://github.com/vtex/faststore/compare/v4.4.1-dev.0...v4.5.0-dev.0) (2026-07-03)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- quotes list for B2B buyers in My Account ([#3388](https://github.com/vtex/faststore/issues/3388)) ([a6c1ef6](https://github.com/vtex/faststore/commit/a6c1ef6d13abd1f525832ccca9a5c0dc6a4b1a87)), closes [faststore-dx-spec-kit#13](https://github.com/faststore-dx-spec-kit/issues/13)
|
|
11
|
+
|
|
6
12
|
## [4.4.1-dev.0](https://github.com/vtex/faststore/compare/v4.4.0...v4.4.1-dev.0) (2026-07-02)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @faststore/core
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0-dev.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
"style-loader": "^3.3.1",
|
|
72
72
|
"swr": "^2.2.5",
|
|
73
73
|
"use-sync-external-store": "^1.6.0",
|
|
74
|
-
"@faststore/api": "4.
|
|
75
|
-
"@faststore/
|
|
76
|
-
"@faststore/
|
|
77
|
-
"@faststore/
|
|
78
|
-
"@faststore/
|
|
74
|
+
"@faststore/api": "4.5.0-dev.0",
|
|
75
|
+
"@faststore/diagnostics": "4.5.0-dev.0",
|
|
76
|
+
"@faststore/lighthouse": "4.5.0-dev.0",
|
|
77
|
+
"@faststore/sdk": "4.5.0-dev.0",
|
|
78
|
+
"@faststore/ui": "4.5.0-dev.0"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@cypress/code-coverage": "^3.12.1",
|
|
@@ -148,6 +148,7 @@ export const OrganizationDrawer = ({
|
|
|
148
148
|
: null
|
|
149
149
|
|
|
150
150
|
const isOrganizationManager = b2b?.organizationManager || false
|
|
151
|
+
const isOrgMember = Boolean(b2b?.unitId)
|
|
151
152
|
|
|
152
153
|
return (
|
|
153
154
|
<SlideOver
|
|
@@ -167,7 +168,10 @@ export const OrganizationDrawer = ({
|
|
|
167
168
|
contractName={contractName}
|
|
168
169
|
contractUrl={contractUrl}
|
|
169
170
|
/>
|
|
170
|
-
<OrganizationDrawerBody
|
|
171
|
+
<OrganizationDrawerBody
|
|
172
|
+
isRepresentative={isRepresentative}
|
|
173
|
+
isOrgMember={isOrgMember}
|
|
174
|
+
/>
|
|
171
175
|
<footer data-fs-organization-drawer-footer-wrapper>
|
|
172
176
|
<ProfileSummary
|
|
173
177
|
showManageLink={isOrganizationManager}
|
|
@@ -3,6 +3,7 @@ import Link from 'src/components/ui/Link'
|
|
|
3
3
|
import menuRoutes from 'src/customizations/src/myAccount/navigation'
|
|
4
4
|
import { useAccountNavigationLabels } from 'src/sdk/account/accountPageContext'
|
|
5
5
|
import {
|
|
6
|
+
ROUTES_ONLY_FOR_B2B_MEMBERS,
|
|
6
7
|
USER_DETAILS_ROUTE,
|
|
7
8
|
getExtraMyAccountRoutes,
|
|
8
9
|
getMyAccountRoutes,
|
|
@@ -12,7 +13,11 @@ const ROUTES_ONLY_FOR_REPRESENTATIVE = [USER_DETAILS_ROUTE]
|
|
|
12
13
|
|
|
13
14
|
export const OrganizationDrawerBody = ({
|
|
14
15
|
isRepresentative,
|
|
15
|
-
|
|
16
|
+
isOrgMember,
|
|
17
|
+
}: {
|
|
18
|
+
isRepresentative: boolean
|
|
19
|
+
isOrgMember: boolean
|
|
20
|
+
}) => {
|
|
16
21
|
const navigationLabels = useAccountNavigationLabels()
|
|
17
22
|
|
|
18
23
|
const menuItems = getMyAccountRoutes({
|
|
@@ -20,11 +25,16 @@ export const OrganizationDrawerBody = ({
|
|
|
20
25
|
labels: navigationLabels,
|
|
21
26
|
})
|
|
22
27
|
|
|
23
|
-
const routes =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
const routes = (
|
|
29
|
+
isRepresentative
|
|
30
|
+
? menuItems
|
|
31
|
+
: menuItems.filter(
|
|
32
|
+
({ route }) => !ROUTES_ONLY_FOR_REPRESENTATIVE.includes(route)
|
|
33
|
+
)
|
|
34
|
+
).filter(
|
|
35
|
+
({ route }) => isOrgMember || !ROUTES_ONLY_FOR_B2B_MEMBERS.includes(route)
|
|
36
|
+
)
|
|
37
|
+
|
|
28
38
|
return (
|
|
29
39
|
<div data-fs-organization-drawer-body>
|
|
30
40
|
<div data-fs-organization-drawer-body-contents>
|