@faststore/core 4.5.1-dev.2 → 4.5.1-dev.4

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,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.1-dev.1 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.3 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.5.1-dev.1 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.1-dev.3 gen-types /home/runner/work/faststore/faststore/packages/core
7
7
  > node ../cli/bin/run generate-types .
8
8
 
9
9
  [STARTED] Parse Configuration
@@ -19,7 +19,7 @@
19
19
  [COMPLETED] Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
20
20
  [COMPLETED] Generate outputs
21
21
 
22
- > @faststore/core@4.5.1-dev.1 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.1-dev.3 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
@@ -1,11 +1,11 @@
1
1
 
2
- > @faststore/core@4.5.1-dev.1 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.3 test /home/runner/work/faststore/faststore/packages/core
3
3
  > vitest run
4
4
 
5
5
 
6
6
   RUN  v4.0.7 /home/runner/work/faststore/faststore/packages/core
7
7
 
8
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 50ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 25ms
9
9
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
10
10
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=8199d03debb0a6751ec53d8ee8987b78d0292acb
11
11
   at node:internal/deps/undici/undici:16416:13
@@ -35,13 +35,12 @@
35
35
  Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
36
36
  npx update-browserslist-db@latest
37
37
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
38
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 1958ms
39
+ ✓ shows an error state when the list fails to load  633ms
38
40
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
39
41
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
40
42
 
41
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 345ms
42
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2351ms
43
- ✓ shows an error state when the list fails to load  620ms
44
- ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  364ms
43
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 186ms
45
44
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
46
45
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
47
46
 
@@ -271,13 +270,13 @@ act(() => {
271
270
  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
272
271
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
273
272
 
274
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1570ms
275
- ✓ renders the password protection form  685ms
276
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 24ms
277
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1771ms
278
- ✓ renders the menu view with contract details and manage footer  951ms
279
- ✓ opens the contract switcher and returns to the menu on back  347ms
280
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 75ms
273
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1405ms
274
+ ✓ renders the password protection form  561ms
275
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 32ms
276
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 80ms
277
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2162ms
278
+ ✓ renders the menu view with contract details and manage footer  1261ms
279
+ ✓ opens the contract switcher and returns to the menu on back  397ms
281
280
  stderr | test/sdk/localization/store-url.browser.test.ts
282
281
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
283
282
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -285,9 +284,9 @@ This ensures that you're testing the behavior the user would see in the browser.
285
284
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
286
285
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
287
286
 
288
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 14ms
289
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 60ms
290
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 88ms
287
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 12ms
288
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 91ms
289
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 132ms
291
290
  stderr | test/components/account/doLogout.browser.test.ts
292
291
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
293
292
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -295,9 +294,9 @@ This ensures that you're testing the behavior the user would see in the browser.
295
294
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
296
295
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
297
296
 
298
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 34ms
299
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 291ms
300
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 279ms
297
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 71ms
298
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 265ms
299
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 255ms
301
300
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
302
301
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
303
302
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -305,12 +304,11 @@ This ensures that you're testing the behavior the user would see in the browser.
305
304
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
306
305
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
307
306
 
308
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 3ms
309
307
  ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 9ms
310
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 2ms
311
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 28ms
312
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 34ms
313
- ✓  node  test/utils/match-url.test.ts (10 tests) 9ms
308
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 3ms
309
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 19ms
310
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 3ms
311
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 31ms
314
312
  stderr | test/sdk/account/refreshToken.browser.test.ts
315
313
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
316
314
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -318,10 +316,11 @@ This ensures that you're testing the behavior the user would see in the browser.
318
316
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
319
317
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
320
318
 
321
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 5ms
322
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 12ms
323
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 8ms
324
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 186ms
319
+ ✓  node  test/utils/match-url.test.ts (10 tests) 10ms
320
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 7ms
321
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 15ms
322
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 201ms
323
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 9ms
325
324
  stderr | test/components/search/SearchInputComponent.test.tsx
326
325
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
327
326
 
@@ -385,23 +384,23 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
385
384
  at Suspense
386
385
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
387
386
 
388
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 85ms
389
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 14ms
390
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 55ms
391
- ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 7ms
392
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 32ms
387
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 84ms
388
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 11ms
389
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 54ms
390
+ ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 9ms
391
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 19ms
393
392
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
394
393
  Set password request failed: Bad Request
395
394
 
396
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 46ms
397
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 441ms
398
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 29ms
399
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 6ms
395
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 51ms
396
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 427ms
397
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 33ms
398
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
400
399
  ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
401
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 856ms
402
- ✓ navigates with the search term on blur  363ms
403
- ✓ navigates without a label param when the search is cleared  359ms
404
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 40ms
400
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 818ms
401
+ ✓ navigates with the search term on blur  370ms
402
+ ✓ navigates without a label param when the search is cleared  358ms
403
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 43ms
405
404
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
406
405
  Graphql execution returned with error: [
407
406
  {
@@ -448,47 +447,47 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
448
447
  { message: 'bad', status: 400, type: 'BadRequestError' }
449
448
  ]
450
449
 
451
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 24ms
452
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 52ms
453
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 158ms
454
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 54ms
455
- ✓  node  test/proxy.localization.test.ts (5 tests) 41ms
456
- ✓  node  test/server/index.test.ts (7 tests) 802ms
450
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 17ms
451
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 46ms
452
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 58ms
453
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 148ms
454
+ ✓  node  test/proxy.localization.test.ts (5 tests) 40ms
455
+ ✓  node  test/server/index.test.ts (7 tests) 708ms
457
456
  ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 8ms
458
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 48ms
459
- ✓  node  test/proxy.test.ts (4 tests) 23ms
460
- ✓  node  test/server/webops-api.test.ts (9 tests) 25ms
461
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 88ms
462
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 42ms
463
- ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 6ms
464
- ✓  node  test/server/cms/global.test.ts (3 tests) 8ms
465
- ✓  node  test/server/content/service.test.ts (5 tests) 5ms
457
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 43ms
458
+ ✓  node  test/proxy.test.ts (4 tests) 25ms
459
+ ✓  node  test/server/webops-api.test.ts (9 tests) 28ms
460
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 105ms
461
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 41ms
462
+ ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 7ms
463
+ ✓  node  test/server/cms/global.test.ts (3 tests) 4ms
464
+ ✓  node  test/server/content/service.test.ts (5 tests) 10ms
466
465
  ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
467
- ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 4ms
468
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
469
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 32ms
470
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 113ms
471
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 5ms
472
- ✓  node  test/pages/api/preview.test.ts (2 tests) 10ms
466
+ ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
467
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 27ms
468
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 5ms
469
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 134ms
470
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 3ms
473
471
  ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
474
- ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
475
- ✓  node  test/server/cms/index.test.ts (2 tests) 11ms
476
- ✓  node  test/utils/retry.test.ts (5 tests) 11ms
477
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 184ms
478
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 56ms
472
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 8ms
473
+ ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 4ms
474
+ ✓  node  test/server/cms/index.test.ts (2 tests) 5ms
475
+ ✓  node  test/utils/retry.test.ts (5 tests) 14ms
476
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 197ms
477
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 52ms
479
478
  ✓  node  test/utils/unlockResponse.test.ts (11 tests) 6ms
480
479
  ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 5ms
481
- ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 4ms
482
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 4ms
480
+ ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
481
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
482
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 47ms
483
483
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 4ms
484
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 51ms
485
484
  ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 4ms
486
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 36ms
487
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 11ms
488
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 26ms
485
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 42ms
486
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 9ms
487
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 23ms
489
488
 
490
489
   Test Files  73 passed (73)
491
490
   Tests  570 passed (570)
492
-  Start at  15:55:03
493
-  Duration  38.20s (transform 10.95s, setup 0ms, collect 32.77s, tests 10.85s, environment 50.70s, prepare 1.23s)
491
+  Start at  23:06:30
492
+  Duration  36.09s (transform 8.20s, setup 0ms, collect 28.56s, tests 10.44s, environment 49.69s, prepare 1.25s)
494
493
 
package/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
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.1-dev.4](https://github.com/vtex/faststore/compare/v4.5.1-dev.3...v4.5.1-dev.4) (2026-08-10)
7
+
8
+ **Note:** Version bump only for package @faststore/core
9
+
10
+ ## [4.5.1-dev.3](https://github.com/vtex/faststore/compare/v4.5.1-dev.2...v4.5.1-dev.3) (2026-08-10)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **core:** add twitter card meta tag to default next seo config ([720f3e6](https://github.com/vtex/faststore/commit/720f3e6d04ef523f2fcf0e146c3741b7e5af70fa))
15
+ - **core:** add twittermeta tags validaton for tests ([c8f5872](https://github.com/vtex/faststore/commit/c8f5872e42b69ddae5b2abfa0e8d3140e2bc7163))
16
+ - **core:** lint error ([d07460f](https://github.com/vtex/faststore/commit/d07460f890ba712c9aecbec25bda5de96bf3e4ef))
17
+ - **core:** remove duplicated twitter meta tag ([f388288](https://github.com/vtex/faststore/commit/f388288731ff75fceedba3cd7449ef1088b0b0c2))
18
+ - **metaTags:** add twitter meta tags to nextSeo ([9c2439b](https://github.com/vtex/faststore/commit/9c2439b4a668dd81b7bfe5bdc44df575725067ec))
19
+
6
20
  ## [4.5.1-dev.2](https://github.com/vtex/faststore/compare/v4.5.1-dev.1...v4.5.1-dev.2) (2026-08-04)
7
21
 
8
22
  **Note:** Version bump only for package @faststore/core
@@ -47,7 +47,7 @@ describe('Home Page Seo', () => {
47
47
  })
48
48
  })
49
49
 
50
- it('has OpenGraph tags', () => {
50
+ it('has OpenGraph and Twitter tags', () => {
51
51
  cy.visit(pages.home, options)
52
52
  cy.waitForHydration()
53
53
 
@@ -68,6 +68,12 @@ describe('Home Page Seo', () => {
68
68
  .should(($el) => {
69
69
  expect($el.attr('content')).to.be.a('string')
70
70
  })
71
+
72
+ cy.get('meta[name="twitter:card"]')
73
+ .should('exist')
74
+ .should(($el) => {
75
+ expect($el.attr('content')).to.eq('summary_large_image')
76
+ })
71
77
  })
72
78
  })
73
79
 
@@ -117,7 +123,7 @@ describe('Product Page Seo', () => {
117
123
  })
118
124
  })
119
125
 
120
- it('has OpenGraph tags', () => {
126
+ it('has OpenGraph and Twitter tags', () => {
121
127
  cy.visit(pages.pdp, options)
122
128
  cy.waitForHydration()
123
129
 
@@ -156,6 +162,12 @@ describe('Product Page Seo', () => {
156
162
  .should(($el) => {
157
163
  expect($el.attr('content')).to.be.a('string')
158
164
  })
165
+
166
+ cy.get('meta[name="twitter:card"]')
167
+ .should('exist')
168
+ .should(($el) => {
169
+ expect($el.attr('content')).to.eq('summary_large_image')
170
+ })
159
171
  })
160
172
  })
161
173
 
@@ -201,7 +213,7 @@ describe('Collection Page Seo', () => {
201
213
  })
202
214
  })
203
215
 
204
- it('has OpenGraph tags', () => {
216
+ it('has OpenGraph and Twitter tags', () => {
205
217
  cy.visit(pages.collection, options)
206
218
  cy.waitForHydration()
207
219
 
@@ -222,6 +234,12 @@ describe('Collection Page Seo', () => {
222
234
  .should(($el) => {
223
235
  expect($el.attr('content')).to.be.a('string')
224
236
  })
237
+
238
+ cy.get('meta[name="twitter:card"]')
239
+ .should('exist')
240
+ .should(($el) => {
241
+ expect($el.attr('content')).to.eq('summary_large_image')
242
+ })
225
243
  })
226
244
  })
227
245
 
@@ -256,7 +274,7 @@ describe('Filtered Collection Page Seo', () => {
256
274
  })
257
275
  })
258
276
 
259
- it('has OpenGraph tags', () => {
277
+ it('has OpenGraph and Twitter tags', () => {
260
278
  cy.visit(pages.collection_filtered, options)
261
279
  cy.waitForHydration()
262
280
 
@@ -277,6 +295,12 @@ describe('Filtered Collection Page Seo', () => {
277
295
  .should(($el) => {
278
296
  expect($el.attr('content')).to.be.a('string')
279
297
  })
298
+
299
+ cy.get('meta[name="twitter:card"]')
300
+ .should('exist')
301
+ .should(($el) => {
302
+ expect($el.attr('content')).to.eq('summary_large_image')
303
+ })
280
304
  })
281
305
  })
282
306
 
@@ -295,7 +319,7 @@ describe('Search Page Seo', () => {
295
319
  cy.get('link[rel="canonical"]').should('not.exist')
296
320
  })
297
321
 
298
- it('has OpenGraph tags', () => {
322
+ it('has OpenGraph and Twitter tags', () => {
299
323
  cy.visit(pages.search, options)
300
324
  cy.waitForHydration()
301
325
 
@@ -316,5 +340,11 @@ describe('Search Page Seo', () => {
316
340
  .should(($el) => {
317
341
  expect($el.attr('content')).to.be.a('string')
318
342
  })
343
+
344
+ cy.get('meta[name="twitter:card"]')
345
+ .should('exist')
346
+ .should(($el) => {
347
+ expect($el.attr('content')).to.eq('summary_large_image')
348
+ })
319
349
  })
320
350
  })
@@ -8,6 +8,9 @@ const config: DefaultSeoProps = {
8
8
  norobots: storeConfig.experimental.noRobots,
9
9
  dangerouslySetAllPagesToNoFollow: storeConfig.experimental.nofollow,
10
10
  dangerouslySetAllPagesToNoIndex: storeConfig.experimental.noindex,
11
+ twitter: {
12
+ cardType: 'summary_large_image',
13
+ },
11
14
  additionalMetaTags: [
12
15
  {
13
16
  name: 'generated-at',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "4.5.1-dev.2",
3
+ "version": "4.5.1-dev.4",
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.5.1-dev.2",
75
- "@faststore/lighthouse": "4.5.1-dev.2",
76
- "@faststore/diagnostics": "4.5.1-dev.2",
77
- "@faststore/sdk": "4.5.1-dev.2",
78
- "@faststore/ui": "4.5.1-dev.2"
74
+ "@faststore/diagnostics": "4.5.1-dev.4",
75
+ "@faststore/lighthouse": "4.5.1-dev.4",
76
+ "@faststore/sdk": "4.5.1-dev.4",
77
+ "@faststore/api": "4.5.1-dev.4",
78
+ "@faststore/ui": "4.5.1-dev.4"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@cypress/code-coverage": "^3.12.1",