@jetshop/template-trend 5.8.2 → 5.10.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.
Files changed (58) hide show
  1. package/.linaria-cache/packages/template-trend/src/components/SearchPage/CategoryList.linaria.css +7 -0
  2. package/.linaria-cache/packages/ui/ChannelSelector/Region.linaria.css +3 -0
  3. package/cypress/integration/essentials.spec.js +50 -0
  4. package/package.json +5 -5
  5. package/schema.graphql +30 -18
  6. package/src/components/Auth/ForgotPassword.loadable.js +7 -0
  7. package/src/components/Auth/LogInPage.loadable.js +7 -0
  8. package/src/components/Auth/ResetPassword.loadable.js +7 -0
  9. package/src/components/Auth/Signup/SignUpPage.loadable.js +7 -0
  10. package/src/components/Cart/CartFragment.gql +8 -0
  11. package/src/components/CategoryPage/CategoryPage.loadable.js +7 -0
  12. package/src/components/CategoryPage/Filters/ListFilters.js +1 -2
  13. package/src/components/CategoryPage/ProductGridFragment.gql +8 -0
  14. package/src/components/CategoryPage/WindowedCategoryPage.js +6 -5
  15. package/src/components/ContentPage/ContentPage.loadable.js +7 -0
  16. package/src/components/Forms/Input.js +3 -6
  17. package/src/components/Layout/Header/RecommendedChannel/RecommendedChannelSelector.js +1 -1
  18. package/src/components/Layout/Header/TopNav.js +13 -11
  19. package/src/components/MyPages/MyPages.loadable.js +7 -0
  20. package/src/components/MyPages/MyPagesSidebar.js +0 -1
  21. package/src/components/NavigationTree/NavTreePage.loadable.js +7 -0
  22. package/src/components/NotFoundPage.loadable.js +7 -0
  23. package/src/components/ProductPage/AddToCart/ProductToast.js +1 -1
  24. package/src/components/ProductPage/ProductPage.loadable.js +7 -0
  25. package/src/components/SearchPage/SearchPage.loadable.js +7 -0
  26. package/src/components/Shop.js +26 -75
  27. package/src/components/StartPage/Content/Row.js +0 -37
  28. package/src/components/StartPage/StartPage.loadable.js +7 -0
  29. package/src/components/StartPage/StartPageProductGridFragment.gql +8 -0
  30. package/src/components/Store/Store.loadable.js +7 -0
  31. package/src/components/StoreLocator/StoreLocator.loadable.js +7 -0
  32. package/src/shop.config.js +8 -4
  33. package/.vscode/launch.json +0 -11
  34. package/cypress/constants.js +0 -5
  35. package/cypress/integration/addToCart/addToCart.spec.js +0 -27
  36. package/cypress/integration/addToCart/disabledVariations.spec.js +0 -17
  37. package/cypress/integration/addToCart/newslettersubscriber.spec.js +0 -24
  38. package/cypress/integration/addToCart/notifyWhenBackInStock.spec.js +0 -20
  39. package/cypress/integration/addToCart/productConfigurations.spec.js +0 -35
  40. package/cypress/integration/addToCart/productVariations.spec.js +0 -42
  41. package/cypress/integration/addToCart/sizePriceChange.spec.js +0 -20
  42. package/cypress/integration/analytics/gtag.spec.js +0 -90
  43. package/cypress/integration/analytics/releware.spec.js +0 -95
  44. package/cypress/integration/auth/login.spec.js +0 -18
  45. package/cypress/integration/auth/signup.spec.js +0 -98
  46. package/cypress/integration/category_page_spec.js +0 -73
  47. package/cypress/integration/filters.spec.js +0 -103
  48. package/cypress/integration/getbyarticlenumber.spec.js +0 -28
  49. package/cypress/integration/packages.spec.js +0 -85
  50. package/cypress/integration/prefetch_headers_spec.js +0 -26
  51. package/cypress/integration/product_browsing_spec.js +0 -17
  52. package/cypress/integration/search/autocomplete.spec.js +0 -28
  53. package/cypress/integration/search/search_page.spec.js +0 -39
  54. package/cypress/integration/ssr/categorySSR.js +0 -9
  55. package/cypress/integration/ssr/productSSR.js +0 -9
  56. package/cypress/integration/ssr/startPageSSR.js +0 -5
  57. package/cypress/integration/start_page_spec.js +0 -5
  58. package/cypress/integration/stores_page.spec.js +0 -5
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import loadable from '@loadable/component';
3
+ import LoadingPage from '../LoadingPage';
4
+
5
+ export default loadable(() => import('./StartPage'), {
6
+ fallback: <LoadingPage />
7
+ });
@@ -24,4 +24,12 @@ fragment StartPageProductGrid on Product {
24
24
  badges {
25
25
  ...Badge
26
26
  }
27
+ customFields {
28
+ key
29
+ type
30
+ title
31
+ ... on CustomStringField {
32
+ stringValue: value
33
+ }
34
+ }
27
35
  }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import loadable from '@loadable/component';
3
+ import LoadingPage from '../LoadingPage';
4
+
5
+ export default loadable(() => import('./Store'), {
6
+ fallback: <LoadingPage />
7
+ });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import loadable from '@loadable/component';
3
+ import LoadingPage from '../LoadingPage';
4
+
5
+ export default loadable(() => import('./StoreLocator'), {
6
+ fallback: <LoadingPage />
7
+ });
@@ -2,13 +2,14 @@ import * as translations from '../translations';
2
2
  import channelsQuery from './ChannelsQuery.gql';
3
3
  import homeCategoriesQuery from './components/Layout/Header/HomeCategoriesQuery.gql';
4
4
  import routeQuery from './components/RouteQuery.gql';
5
- import { LoadableProductPage, LoadableContentPage } from './components/Shop';
6
5
  import {
7
6
  LoadableStandardCategoryPage,
8
7
  LoadableWindowedCategoryPage
9
8
  } from './components/CategoryPage/CategoryPage';
10
9
  import { theme } from './components/Theme';
11
10
  import createFacebookTracker from '@jetshop/core/server/tracking/facebook';
11
+ import ProductPage from './components/ProductPage/ProductPage.loadable';
12
+ import ContentPage from './components/ContentPage/ContentPage.loadable';
12
13
 
13
14
  const config = {
14
15
  theme,
@@ -45,7 +46,10 @@ const config = {
45
46
  },
46
47
  channelOverrides: {},
47
48
  disableGeoRedirect: true,
48
- singleDomainMode: process.env.REACT_APP_SINGLE_DOMAIN_MODE,
49
+ singleDomainMode:
50
+ typeof process.env.REACT_APP_SINGLE_DOMAIN_MODE === 'undefined'
51
+ ? true
52
+ : process.env.REACT_APP_SINGLE_DOMAIN_MODE, // default to true if this env var is not set
49
53
  schemaExtensions: [],
50
54
  preserveRedirect: true,
51
55
  structuredData: {
@@ -67,9 +71,9 @@ const config = {
67
71
  preload: {
68
72
  routeQuery,
69
73
  preloadComponents: {
70
- Product: [LoadableProductPage],
74
+ Product: [ProductPage],
71
75
  Category: [LoadableStandardCategoryPage, LoadableWindowedCategoryPage],
72
- Page: [LoadableContentPage]
76
+ Page: [ContentPage]
73
77
  }
74
78
  }
75
79
  };
@@ -1,11 +0,0 @@
1
- {
2
- "configurations": [
3
- {
4
- "type": "node-terminal",
5
- "name": "Run Script: start",
6
- "request": "launch",
7
- "command": "yarn run start",
8
- "cwd": "${workspaceFolder}"
9
- }
10
- ]
11
- }
@@ -1,5 +0,0 @@
1
- export const PRODUCT_URL = 'se/accessories/watches/watch-classic-504';
2
- export const OUT_OF_STOCK_PRODUCT_URL = 'se/preview?articlenumber=224733';
3
- export const CATEGORY_URL = 'se/accessories/watches';
4
- export const ARTICLENUMBER_URL = 'se/articlenumber/6952315';
5
- export const US_ARTICLENUMBER_URL = 'int/articlenumber/6952315';
@@ -1,27 +0,0 @@
1
- import { PRODUCT_URL, OUT_OF_STOCK_PRODUCT_URL } from '../../constants';
2
-
3
- describe('Add to cart tests', () => {
4
- it('Will add add a basic product to the cart', () => {
5
- cy.visit(PRODUCT_URL);
6
- cy.get('button[data-testid="add-to-cart"]').click();
7
- cy.get('[data-testid="product-toast"]').should('exist');
8
- cy.get('[data-testid="cart-button"]').click();
9
- cy.get('[data-testid="item-name"]').should('not.be.empty');
10
- cy.get('[data-testid="increment-quantity"]').click();
11
- cy.get('[data-testid="item-quantity"]').should('contain', 2);
12
- cy.get('[data-testid="remove-from-cart"]').click();
13
- cy.get('[data-testid="item-name"]').should('not.exist');
14
- });
15
- it('Add to cart button is disabled if product is out of stock', () => {
16
- cy.visit(OUT_OF_STOCK_PRODUCT_URL);
17
- cy.get('button[data-testid="add-to-cart"]').should('be.disabled');
18
- });
19
- it('Checkout button is linked to the checkout', () => {
20
- cy.visit(PRODUCT_URL);
21
- cy.get('button[data-testid="add-to-cart"]').click();
22
- cy.get('button[data-testid="cart-button"]').click();
23
- cy.get('[data-testid="checkout-button"]')
24
- .should('have.attr', 'href')
25
- .and('include', 'externalcheckout');
26
- });
27
- });
@@ -1,17 +0,0 @@
1
- const PRODUCT_WITH_INVALID_VARIATIONS_URL = '/furniture/toldbod-pendant';
2
- describe('Disabled variations', () => {
3
- it('Will add a product with attributes if they have been selected', () => {
4
- cy.visit(PRODUCT_WITH_INVALID_VARIATIONS_URL);
5
- cy.get('button[data-testid="add-to-cart"]').click();
6
- cy.get('[data-testid="product-toast"]').should('not.exist');
7
- cy.findByText('Ø 250').click();
8
- cy.get('#option-Color').click();
9
- cy.findByText('White', { selector: 'li[role=menuitem]' }).click();
10
- cy.get('button[data-testid="add-to-cart"]').should('be.disabled');
11
- cy.get('#option-Color').click();
12
- cy.findByText('Black', { selector: 'li[role=menuitem]' }).click();
13
- cy.findByText('Ø 250').click();
14
- cy.get('button[data-testid="add-to-cart"]').click();
15
- cy.get('[data-testid="product-toast"]').should('exist');
16
- });
17
- });
@@ -1,24 +0,0 @@
1
- describe('Notify when back test', () => {
2
- it('Subscribes to newsletter with a random email', () => {
3
- cy.visit('/');
4
- cy.get(
5
- '[data-testid="newsletter-subscription-input"]'
6
- ).type('edgardavids@glasses.com', { force: true });
7
- cy.get('button[data-testid="newsletter-subscription-submit"]').click();
8
- cy.get('p[data-testid="newsletter-subscription-success"]').should(
9
- 'contain',
10
- 'You are now subscribed'
11
- );
12
- });
13
-
14
- it('Cannot subscribe with an invalid email', () => {
15
- cy.visit('/');
16
- cy.get(
17
- '[data-testid="newsletter-subscription-input"]'
18
- ).type('edgardavids.com', { force: true });
19
- cy.get('button[data-testid="newsletter-subscription-submit"]').click();
20
- cy.get('p[data-testid="newsletter-subscription-success"]').should(
21
- 'not.exist'
22
- );
23
- });
24
- });
@@ -1,20 +0,0 @@
1
- const PRODUCT_URL = 'accessories/glasses-black';
2
-
3
- describe('Notify when back test', () => {
4
- it('Will fill out notify when back with a test email', () => {
5
- cy.visit(PRODUCT_URL);
6
- cy.get('button[data-testid="add-to-cart"]').should('not.exist');
7
- cy.get('button[data-testid="notify-when-back-button"]').click();
8
- cy.get('input[data-testid="notify-when-back-input"]').type(
9
- 'test@example.com',
10
- {
11
- force: true
12
- }
13
- );
14
- cy.get('button[data-testid="notify-when-back-ok"]').click({ force: true });
15
- cy.get('p[data-testid="notify-when-back-success"]').should(
16
- 'contain',
17
- 'You are now subscribed'
18
- );
19
- });
20
- });
@@ -1,35 +0,0 @@
1
- const PRODUCT_URL = 'furniture/black-leather-sofa';
2
-
3
- describe('Add to cart product configuration tests', () => {
4
- it('Will add add a product with configurations', () => {
5
- cy.visit(PRODUCT_URL);
6
-
7
- cy.get('.price').should('contain', '420');
8
-
9
- cy.get('#option-Head').click();
10
- cy.findAllByRole('menuitem', { name: 'putter' }).click();
11
- cy.get('#option-Head').should('contain', 'putter');
12
-
13
- cy.get('.price').should('contain', '370');
14
-
15
- cy.get('#option-stick').click();
16
- cy.findAllByRole('menuitem', { name: 'shiny' }).click();
17
- cy.get('#option-stick').should('contain', 'shiny');
18
-
19
- cy.get('.price').should('contain', '470');
20
-
21
- cy.get('#option-grip').click();
22
- cy.findAllByRole('menuitem', { name: 'plastic' }).click();
23
- cy.get('#option-grip').should('contain', 'plastic');
24
-
25
- cy.get('.price').should('contain', '455');
26
-
27
- cy.findByRole('button', { name: /add to cart/i }).click();
28
-
29
- cy.get('[data-testid="product-toast"]').should('exist');
30
- cy.get('[data-testid="cart-button"]').click();
31
- cy.get('[data-testid="item-name"]').should('not.be.empty');
32
- cy.get('[data-testid="item-price"]').should('contain', '455');
33
- cy.get('[data-testid="cart-button"]').click();
34
- });
35
- });
@@ -1,42 +0,0 @@
1
- const PRODUCT_WITH_VARIATIONS_URL = 'furniture/armchair-lord';
2
-
3
- describe('Product variants', () => {
4
- it('can be successfully selected and added to cart', () => {
5
- cy.visit(PRODUCT_WITH_VARIATIONS_URL);
6
-
7
- cy.get('button[data-testid="add-to-cart"]').click();
8
- cy.get('[data-testid="product-toast"]').should('not.exist');
9
- cy.findByText('Small').click();
10
- cy.findByText('JA').click();
11
- cy.get('button[data-testid="add-to-cart"]').click();
12
- cy.get('[data-testid="product-toast"]').should('not.exist');
13
- cy.get('input[data-testid="Skriv in ditt önskade tryck här-input"]').type(
14
- 'Hello, World'
15
- );
16
- cy.get('button[data-testid="add-to-cart"]').click();
17
- cy.get('[data-testid="product-toast"]').should('exist');
18
- cy.get('[data-testid="cart-button"]').click();
19
- cy.get('[data-testid="item-name"]').should('not.be.empty');
20
- cy.get('[data-testid="increment-quantity"]').click();
21
- cy.get('[data-testid="item-quantity"]').should('contain', 2);
22
- cy.get('[data-testid="remove-from-cart"]').click();
23
- cy.get('[data-testid="item-name"]').should('not.exist');
24
- });
25
-
26
- describe('Preselection', () => {
27
- it('preselects variant when included in the url', () => {
28
- cy.visit('accessories/belts/belt-light?att=Mzg=');
29
- cy.get('[aria-pressed="true"]').should('contain', '38');
30
- });
31
-
32
- it('preselects the cheapest variant by default', () => {
33
- cy.visit('accessories/belts/belt-light');
34
- cy.get('[aria-pressed="true"]').should('contain', '37');
35
-
36
- cy.visit('/furniture/aj-floor-lamp');
37
- cy.get('[aria-pressed="true"]')
38
- .should('contain', 'Black')
39
- .should('contain', '140');
40
- });
41
- });
42
- });
@@ -1,20 +0,0 @@
1
- const PRODUCT_URL = 'accessories/belt-light';
2
-
3
- describe('Produce price', () => {
4
- it('changes when variant is changed', () => {
5
- cy.visit(PRODUCT_URL);
6
- cy.get('.new-price').should('contain', '499');
7
- cy.findByText('36').click();
8
- cy.get('.new-price').should('contain', '563');
9
- cy.findByText('38').click();
10
- cy.get('.new-price').should('contain', '500');
11
- cy.get('button[data-testid="add-to-cart"]').click();
12
- cy.get('[data-testid="product-toast"]').should('exist');
13
- cy.get('[data-testid="cart-button"]').click();
14
- cy.get('[data-testid="item-name"]').should('not.be.empty');
15
- cy.get('.price')
16
- .first()
17
- .should('contain', '500');
18
- cy.get('[data-testid="cart-button"]').click();
19
- });
20
- });
@@ -1,90 +0,0 @@
1
- import { callsTo } from '../../support/dataLayer';
2
- import { PRODUCT_URL, CATEGORY_URL } from '../../constants';
3
- const eventMatcher = eventName => [
4
- function eventMatcher(calls) {
5
- return calls.find(call => call[0] === 'event' && call[1] === eventName);
6
- },
7
- `Event ${eventName} is pushed to dataLayer`
8
- ];
9
-
10
- const pageviewMatcher = path => [
11
- function pageviewMatcher(calls) {
12
- const pageViewCall = calls.find(
13
- call => call[0] === 'event' && call[1] === 'page_view'
14
- );
15
- return pageViewCall.length > 0;
16
- },
17
- `Page View for "${path}" is pushed to dataLayer`
18
- ];
19
-
20
- describe('Analytics: GTAG – Google Analytics', () => {
21
- it('Start Page: Should trigger view events', () => {
22
- cy.visit('/');
23
- cy.get('@gtm_dataLayer_push').should(push => {
24
- expect(callsTo(push)).to.satisfy(...eventMatcher('view_item_list'));
25
- expect(callsTo(push)).to.satisfy(...pageviewMatcher('/'));
26
- });
27
- });
28
-
29
- it('Category Page: Should trigger view events', () => {
30
- cy.visit(CATEGORY_URL);
31
- cy.get('@gtm_dataLayer_push').should(push => {
32
- expect(callsTo(push)).to.satisfy(...eventMatcher('view_item_list'));
33
- expect(callsTo(push)).to.satisfy(...pageviewMatcher(CATEGORY_URL));
34
- });
35
- });
36
-
37
- it('Category Page: Should trigger click events', () => {
38
- cy.visit(CATEGORY_URL);
39
-
40
- cy.findAllByTestId('product')
41
- .first()
42
- .click();
43
-
44
- cy.get('@gtm_dataLayer_push').should(push => {
45
- expect(callsTo(push)).to.satisfy(...eventMatcher('select_content'));
46
- });
47
- });
48
-
49
- it('Product Page: Should trigger view events', () => {
50
- cy.visit(PRODUCT_URL);
51
- cy.get('@gtm_dataLayer_push').should(push => {
52
- expect(callsTo(push)).to.satisfy(...eventMatcher('view_item'));
53
- expect(callsTo(push)).to.satisfy(...pageviewMatcher(PRODUCT_URL));
54
- });
55
- });
56
-
57
- it('Product Page: Should trigger cart events', () => {
58
- cy.visit(PRODUCT_URL);
59
-
60
- // Add to cart
61
- cy.findByTestId('add-to-cart').click({ force: true });
62
- cy.get('@gtm_dataLayer_push').should(push => {
63
- expect(callsTo(push)).to.satisfy(...eventMatcher('add_to_cart'));
64
- });
65
-
66
- // Remove from to cart
67
- cy.findByTestId('cart-button').click({ force: true });
68
- cy.findByTestId('remove-from-cart')
69
- .first()
70
- .click();
71
- cy.get('@gtm_dataLayer_push').should(push => {
72
- expect(callsTo(push)).to.satisfy(...eventMatcher('remove_from_cart'));
73
- });
74
- });
75
-
76
- it('Product Page: Attribute click events to the appropriate list and apppropriate currency', () => {
77
- cy.visit(CATEGORY_URL);
78
-
79
- cy.findAllByTestId('product')
80
- .first()
81
- .click();
82
-
83
- cy.findByTestId('add-to-cart').click({ force: true });
84
- cy.get('@gtm_dataLayer_push').should(push => {
85
- expect(callsTo(push).pop()[2].currency).to.equal('SEK');
86
- expect(callsTo(push).pop()[2].items[0].list_name).to.equal('Watches');
87
- expect(callsTo(push)).to.satisfy(...eventMatcher('add_to_cart'));
88
- });
89
- });
90
- });
@@ -1,95 +0,0 @@
1
- import { PRODUCT_URL } from '../../constants';
2
-
3
- // const BASE_EVENT = {
4
- // itemId: '155',
5
- // accountId: 'jetshop',
6
- // siteId: 'localhost'
7
- // };
8
-
9
- function getRelewareCalls(spy) {
10
- return spy
11
- .getCalls()
12
- .filter(call => call.args[0].indexOf('log.releware.net') > -1)
13
- .map(call => {
14
- const query = new URL(call.args[0]).searchParams;
15
- return {
16
- itemId: query.get('_item_id'),
17
- accountId: query.get('aid'),
18
- event: query.get('o'),
19
- siteId: query.get('sid')
20
- };
21
- });
22
- }
23
-
24
- describe('Analytics: Releware', () => {
25
- beforeEach(function() {
26
- // Stub window.fetch before any app code runs
27
- cy.on('window:before:load', win => {
28
- const doFetch = win.fetch;
29
- cy.stub(win, 'fetch', (path, options) => {
30
- if (path.indexOf('log.releware.net') > -1) {
31
- return Promise.resolve();
32
- }
33
- return doFetch(path, options);
34
- }).as('fetch');
35
- });
36
- });
37
-
38
- // FIXME: The heed_recommendation event is not implemented in this template
39
- // yet. This test (modified to target the correct list) should pass
40
- // once it is.
41
- //
42
- // it('Category Page: Should trigger click events for recommendations', () => {
43
- // cy.visit(CATEGORY_URL);
44
-
45
- // cy.getByTestId('product')
46
- // .first()
47
- // .click();
48
-
49
- // cy.get('@fetch').should(spy => {
50
- // const calls = getRelewareCalls(spy);
51
-
52
- // expect(calls).to.have.lengthOf(1);
53
- // expect(calls).to.deep.equal([
54
- // { ...BASE_EVENT, event: 'heed_recommendation' }
55
- // ]);
56
- // });
57
- // });
58
-
59
- it('Product Page: Should trigger view events', () => {
60
- cy.visit(PRODUCT_URL);
61
- cy.get('@fetch').should(spy => {
62
- const calls = getRelewareCalls(spy);
63
-
64
- expect(calls).to.have.lengthOf(1);
65
- expect(calls[0].event).to.equal('view_item');
66
- });
67
- });
68
-
69
- it('Product Page: Should trigger cart events', () => {
70
- cy.visit(PRODUCT_URL);
71
- cy.findByTestId('add-to-cart').click();
72
-
73
- cy.get('@fetch').should(spy => {
74
- const calls = getRelewareCalls(spy);
75
- expect(calls).to.have.lengthOf(2);
76
- expect(calls[1].event).to.equal('pick_item');
77
- });
78
-
79
- // FIXME: How to implement this is not mentioned in any of the releware
80
- // docs, it might be so that they only track add events.
81
- //
82
- // cy.getByTestId('header-cart')
83
- // .click({ force: true })
84
- // .getByTestId('remove-from-cart')
85
- // .first()
86
- // .click();
87
- // cy.get('@fetch').should(spy => {
88
- // const calls = getRelewareCalls(spy);
89
- // expect(calls).to.have.lengthOf(3);
90
- // expect(calls.slice(2)).to.deep.equal([
91
- // { ...BASE_EVENT, event: '???' }
92
- // ]);
93
- // });
94
- });
95
- });
@@ -1,18 +0,0 @@
1
- describe('Log In', () => {
2
- it('Will show an error when the user enters bad credentials', () => {
3
- cy.visit('/se/login');
4
- cy.get('#email').type('test@test.com');
5
- cy.get('#password').type('iamanonsensepassword');
6
- cy.get('button[type="submit"]').contains('Log in').click();
7
- cy.findByText('Login failed. Please try again').should('exist');
8
- });
9
-
10
- it('Will log a user in with correct credentials', () => {
11
- cy.visit('/se/login');
12
- cy.get('#email').type('wolverine@jetshop.se');
13
- cy.get('#password').type('jetshop');
14
- cy.get('button[type="submit"]').contains('Log in').click();
15
- cy.findByText('Login failed. Please try again').should('not.exist');
16
- cy.url().should('contain', 'my-pages');
17
- });
18
- });
@@ -1,98 +0,0 @@
1
- function randomString() {
2
- return Math.random().toString(25);
3
- }
4
-
5
- describe('User can sign up', () => {
6
- it('as a private customer', () => {
7
- cy.visit('/se/signup');
8
-
9
- cy.get("input[name='pid']").type('test');
10
- cy.get("input[name='firstName']").type('Private');
11
- cy.get("input[name='lastName']").type('Customer');
12
- cy.get("input[name='streetName']").type('test');
13
- cy.get("input[name='postalCode']").type('51234');
14
- cy.get("input[name='city']").type('test');
15
- cy.get("input[name='emailAddress']").type(`${randomString()}@test.com`);
16
- cy.get("input[name='password']").type('cypresstest');
17
- cy.get('[data-testid="sign-up-button"]').click();
18
-
19
- cy.get('h2[data-testid="customer-name"]').should(
20
- 'contain',
21
- 'Private Customer'
22
- );
23
-
24
- cy.get('a[href="/se/my-pages/profile"]').click();
25
-
26
- cy.get('input[type="checkbox"][name="confirm"]').click({ force: true });
27
-
28
- cy.get('button[type="submit"]').contains('Delete account').click();
29
- });
30
- it('as a business customer', () => {
31
- cy.visit('/se/signup');
32
-
33
- cy.get('input[type="radio"][value="company"]').click({ force: true });
34
- cy.get("input[name='organizationNumber']").type('test');
35
- cy.get("input[name='company']").type('test');
36
- cy.get("input[name='companyAtt']").type('test');
37
- cy.get("input[name='department']").type('test');
38
- cy.get("input[name='firstName']").type('test');
39
- cy.get("input[name='lastName']").type('test');
40
- cy.get("input[name='streetName']").type('test');
41
- cy.get("input[name='postalCode']").type('51234');
42
- cy.get("input[name='city']").type('test');
43
- cy.get("input[name='emailAddress']").type(
44
- `${randomString()}@business-test.com`
45
- );
46
- cy.get("input[name='password']").type('cypresstest');
47
- cy.get('[data-testid="sign-up-button"]').click();
48
-
49
- cy.get('a[href="/se/my-pages/profile"]').click();
50
-
51
- cy.get('input[type="checkbox"][name="confirm"]').click({ force: true });
52
-
53
- cy.get('button[type="submit"]').contains('Delete account').click();
54
-
55
- cy.get('span').contains('Log in').should('be.visible');
56
- });
57
- it('with encrypted values', () => {
58
- cy.visit('/se/signup');
59
-
60
- cy.get("input[name='pid']").type('test');
61
- cy.get("input[name='firstName']").type('eTZ7FGaVn/RAThBesp3unQ==');
62
- cy.get("input[name='lastName']").type('Pehrers');
63
- cy.get("input[name='streetName']").type('test');
64
- cy.get("input[name='postalCode']").type('51234');
65
- cy.get("input[name='city']").type('test');
66
- cy.get("input[name='emailAddress']").type(`${randomString()}@test.com`);
67
- cy.get("input[name='password']").type('cypresstest');
68
- cy.get('[data-testid="sign-up-button"]').click();
69
-
70
- cy.get('a[href="/se/my-pages/profile"]').click();
71
- cy.get('h2[data-testid="customer-name"]').should('contain', 'Erik Pehrers');
72
-
73
- cy.get('input[type="checkbox"][name="confirm"]').click({ force: true });
74
-
75
- cy.get('button[type="submit"]').contains('Delete account').click();
76
-
77
- cy.get('span').contains('Log in').should('be.visible');
78
- });
79
-
80
- it('Displays email validation error', () => {
81
- cy.visit('/se/signup');
82
-
83
- cy.get("input[name='pid']").type('test');
84
- cy.get("input[name='firstName']").type('integrationtest');
85
- cy.get("input[name='lastName']").type('E god');
86
- cy.get("input[name='streetName']").type('test');
87
- cy.get("input[name='postalCode']").type('51234');
88
- cy.get("input[name='city']").type('test');
89
- cy.get("input[name='emailAddress']").type('kantarellen@egod.com');
90
- cy.get("input[name='password']").type('cypresstest');
91
- cy.get('[data-testid="sign-up-button"]').click();
92
-
93
- cy.get('div[data-testid="validation-error"]').should(
94
- 'contain',
95
- 'The specified e-mail address is already registered.'
96
- );
97
- });
98
- });