@faststore/core 4.5.1-dev.1 → 4.5.1-dev.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,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.1-dev.0 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.2 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.0 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.1-dev.2 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.0 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.1-dev.2 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.0 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.1-dev.2 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) 62ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 42ms
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
@@ -38,11 +38,9 @@ Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
38
38
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
39
39
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
40
40
 
41
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 263ms
42
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2181ms
43
- ✓ shows an error state when the list fails to load  654ms
44
- ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  308ms
45
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 23ms
41
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 211ms
42
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2474ms
43
+ ✓ shows an error state when the list fails to load  761ms
46
44
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
47
45
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
48
46
 
@@ -272,13 +270,16 @@ act(() => {
272
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
273
271
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
274
272
 
275
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2364ms
276
- ✓ renders the password protection form  1042ms
277
- ✓ posts the password and redirects to the requested return path  380ms
278
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 83ms
279
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2231ms
280
- ✓ renders the menu view with contract details and manage footer  1175ms
281
- ✓ opens the contract switcher and returns to the menu on back  423ms
273
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2350ms
274
+ ✓ renders the password protection form  859ms
275
+ ✓ posts the password and redirects to the requested return path  351ms
276
+ ✓ defaults returnTo to root and shows API validation errors  319ms
277
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 39ms
278
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2396ms
279
+ ✓ renders the menu view with contract details and manage footer  1245ms
280
+ ✓ opens the contract switcher and returns to the menu on back  558ms
281
+ ✓ resets to the menu when the drawer closes  347ms
282
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 58ms
282
283
  stderr | test/sdk/localization/store-url.browser.test.ts
283
284
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
284
285
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -286,9 +287,9 @@ This ensures that you're testing the behavior the user would see in the browser.
286
287
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
287
288
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
288
289
 
289
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 18ms
290
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 135ms
291
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 131ms
290
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 31ms
291
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 110ms
292
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 130ms
292
293
  stderr | test/components/account/doLogout.browser.test.ts
293
294
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
294
295
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -296,7 +297,7 @@ This ensures that you're testing the behavior the user would see in the browser.
296
297
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
297
298
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
298
299
 
299
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 33ms
300
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 30ms
300
301
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
301
302
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
302
303
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -304,12 +305,12 @@ This ensures that you're testing the behavior the user would see in the browser.
304
305
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
305
306
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
306
307
 
307
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 13ms
308
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 290ms
309
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 349ms
310
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 4ms
311
- ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 5ms
312
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 29ms
308
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 257ms
309
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 6ms
310
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 298ms
311
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 5ms
312
+ ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 4ms
313
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 28ms
313
314
  stderr | test/sdk/account/refreshToken.browser.test.ts
314
315
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
315
316
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:121:27)
@@ -317,11 +318,11 @@ This ensures that you're testing the behavior the user would see in the browser.
317
318
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
318
319
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
319
320
 
320
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 34ms
321
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 5ms
322
- ✓  node  test/utils/match-url.test.ts (10 tests) 12ms
323
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 309ms
321
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 28ms
322
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 6ms
323
+ ✓  node  test/utils/match-url.test.ts (10 tests) 13ms
324
324
  ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 16ms
325
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 216ms
325
326
  ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 11ms
326
327
  stderr | test/components/search/SearchInputComponent.test.tsx
327
328
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
@@ -386,23 +387,23 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
386
387
  at Suspense
387
388
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
388
389
 
389
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 81ms
390
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 16ms
391
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 44ms
390
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 87ms
391
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 11ms
392
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 54ms
392
393
  ✓  node  test/experimental/myAccountCmsServerSideProps.test.ts (5 tests) 11ms
393
- ✓  node  test/utils/clearCookies.test.ts (20 tests) 29ms
394
+ ✓  node  test/utils/clearCookies.test.ts (20 tests) 21ms
394
395
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
395
396
  Set password request failed: Bad Request
396
397
 
397
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 45ms
398
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 443ms
399
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 25ms
398
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 43ms
399
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 424ms
400
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 28ms
400
401
  ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
401
402
  ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
402
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 30ms
403
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 854ms
404
- ✓ navigates with the search term on blur  369ms
405
- ✓ navigates without a label param when the search is cleared  361ms
403
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 823ms
404
+ ✓ navigates with the search term on blur  364ms
405
+ ✓ navigates without a label param when the search is cleared  360ms
406
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 42ms
406
407
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
407
408
  Graphql execution returned with error: [
408
409
  {
@@ -449,49 +450,49 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
449
450
  { message: 'bad', status: 400, type: 'BadRequestError' }
450
451
  ]
451
452
 
452
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 29ms
453
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 61ms
454
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 41ms
455
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 161ms
456
- ✓  node  test/proxy.localization.test.ts (5 tests) 43ms
453
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 27ms
454
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 75ms
455
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 155ms
456
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 43ms
457
+ ✓  node  test/proxy.localization.test.ts (5 tests) 45ms
458
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 8ms
457
459
  ✓  node  test/server/index.test.ts (7 tests) 1015ms
458
- ✓ should return a valid merged GraphQL schema  319ms
459
- ✓ should handle options and execute  431ms
460
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (10 tests) 14ms
461
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 44ms
462
- ✓  node  test/proxy.test.ts (4 tests) 20ms
463
- ✓  node  test/server/webops-api.test.ts (9 tests) 21ms
464
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 108ms
465
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 42ms
466
- ✓  node  test/server/content/service.test.ts (5 tests) 6ms
460
+ ✓ should return a valid merged GraphQL schema  342ms
461
+ ✓ should handle options and execute  440ms
462
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 47ms
463
+ ✓  node  test/proxy.test.ts (4 tests) 19ms
464
+ ✓  node  test/server/webops-api.test.ts (9 tests) 30ms
465
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 35ms
466
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 107ms
467
467
  ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 8ms
468
- ✓  node  test/server/cms/global.test.ts (3 tests) 4ms
469
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 5ms
468
+ ✓  node  test/server/cms/global.test.ts (3 tests) 6ms
469
+ ✓  node  test/server/content/service.test.ts (5 tests) 6ms
470
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 10ms
470
471
  ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
471
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
472
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 33ms
473
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 140ms
474
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 6ms
475
- ✓  node  test/pages/api/preview.test.ts (2 tests) 11ms
472
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
473
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 34ms
474
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 137ms
475
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 5ms
476
+ ✓  node  test/pages/api/preview.test.ts (2 tests) 9ms
476
477
  ✓  node  test/components/search/SearchInput.test.ts (6 tests) 8ms
477
- ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
478
+ ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 5ms
478
479
  ✓  node  test/server/cms/index.test.ts (2 tests) 5ms
479
- ✓  node  test/utils/retry.test.ts (5 tests) 15ms
480
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 42ms
481
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 195ms
480
+ ✓  node  test/utils/retry.test.ts (5 tests) 14ms
481
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 57ms
482
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 207ms
482
483
  ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
483
- ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 5ms
484
+ ✓  node  test/server/cms/myAccountDefaultSections.test.ts (5 tests) 7ms
484
485
  ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
485
- ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
486
+ ✓  node  test/utils/isLocalHost.test.ts (7 tests) 7ms
486
487
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 5ms
487
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 38ms
488
- ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 3ms
489
- ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 42ms
490
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 12ms
491
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 26ms
488
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 54ms
489
+ ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 5ms
490
+ ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 45ms
491
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 10ms
492
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 24ms
492
493
 
493
494
   Test Files  73 passed (73)
494
495
   Tests  570 passed (570)
495
-  Start at  15:41:47
496
-  Duration  38.79s (transform 9.13s, setup 0ms, collect 32.09s, tests 12.43s, environment 50.66s, prepare 1.37s)
496
+  Start at  21:17:01
497
+  Duration  38.06s (transform 8.66s, setup 0ms, collect 30.89s, tests 12.61s, environment 49.59s, prepare 1.36s)
497
498
 
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.3](https://github.com/vtex/faststore/compare/v4.5.1-dev.2...v4.5.1-dev.3) (2026-08-10)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **core:** add twitter card meta tag to default next seo config ([720f3e6](https://github.com/vtex/faststore/commit/720f3e6d04ef523f2fcf0e146c3741b7e5af70fa))
11
+ - **core:** add twittermeta tags validaton for tests ([c8f5872](https://github.com/vtex/faststore/commit/c8f5872e42b69ddae5b2abfa0e8d3140e2bc7163))
12
+ - **core:** lint error ([d07460f](https://github.com/vtex/faststore/commit/d07460f890ba712c9aecbec25bda5de96bf3e4ef))
13
+ - **core:** remove duplicated twitter meta tag ([f388288](https://github.com/vtex/faststore/commit/f388288731ff75fceedba3cd7449ef1088b0b0c2))
14
+ - **metaTags:** add twitter meta tags to nextSeo ([9c2439b](https://github.com/vtex/faststore/commit/9c2439b4a668dd81b7bfe5bdc44df575725067ec))
15
+
16
+ ## [4.5.1-dev.2](https://github.com/vtex/faststore/compare/v4.5.1-dev.1...v4.5.1-dev.2) (2026-08-04)
17
+
18
+ **Note:** Version bump only for package @faststore/core
19
+
6
20
  ## [4.5.1-dev.1](https://github.com/vtex/faststore/compare/v4.5.1-dev.0...v4.5.1-dev.1) (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.1",
3
+ "version": "4.5.1-dev.3",
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.1",
75
- "@faststore/diagnostics": "4.5.1-dev.1",
76
- "@faststore/sdk": "4.5.1-dev.1",
77
- "@faststore/ui": "4.5.1-dev.1",
78
- "@faststore/lighthouse": "4.5.1-dev.1"
74
+ "@faststore/api": "4.5.1-dev.3",
75
+ "@faststore/diagnostics": "4.5.1-dev.3",
76
+ "@faststore/lighthouse": "4.5.1-dev.3",
77
+ "@faststore/sdk": "4.5.1-dev.3",
78
+ "@faststore/ui": "4.5.1-dev.3"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@cypress/code-coverage": "^3.12.1",