From 0b17c9426b8d3b495ee0adc1726fbd20985b58d2 Mon Sep 17 00:00:00 2001 From: Andy Blum Date: Fri, 11 Feb 2022 13:19:09 -0500 Subject: [PATCH 1/3] fix(tabs-extended): add vertical arrow key support (#8243) ### Related Ticket(s) {{Provide url(s) to the related ticket(s) that this pull request addresses}} fixes #7719 {{Add a human-readable description / detail summary of what the PR is changing and any details around how and why}} Adds arrow-up and arrow-down navigation to the tabs-extended component ### Changelog **Changed** - Adds arrow-up and arrow-down navigation to the tabs-extended component --- .../src/components/tabs-extended/tabs-extended.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/web-components/src/components/tabs-extended/tabs-extended.ts b/packages/web-components/src/components/tabs-extended/tabs-extended.ts index 7c4905df336..0f80e6156c8 100644 --- a/packages/web-components/src/components/tabs-extended/tabs-extended.ts +++ b/packages/web-components/src/components/tabs-extended/tabs-extended.ts @@ -88,6 +88,12 @@ class DDSTabsExtended extends StableSelectorMixin(LitElement) { this._setActiveItem(this._getNextTab(activeTab)); } break; + case 'ArrowUp': + this._setActiveItem(this._getPrevTab(activeTab)); + break; + case 'ArrowDown': + this._setActiveItem(this._getNextTab(activeTab)); + break; case 'Home': this._setActiveItem(this._getNextTab(-1)); break; From 9a73de0bd1b0b380b2c9de6dbd216634728bce5b Mon Sep 17 00:00:00 2001 From: Anna Wen <54281166+annawen1@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:31:15 -0500 Subject: [PATCH 2/3] fix(cloud-masthead): update the services and utilities to use canary (#8250) ### Description We were getting an error that the `checkPersonalization()` method from `CloudAccountAuth` service was not defined. Updating the package versions for `services` and `utilities` resolves this issue. ### Changelog **Changed** - add optional chaining for cloud auth check for `digitalData.user.segment.isCloudLoggedOn` - update services and utilities packages --- ...om-services-1.31.0-canary.1827018708.0.tgz | Bin 0 -> 35467 bytes ...m-utilities-1.31.0-canary.1827018708.0.tgz | Bin 0 -> 25358 bytes packages/services-store/package.json | 4 +-- .../CloudAccountAuth/CloudAccountAuth.js | 2 +- packages/web-components/package.json | 4 +-- yarn.lock | 24 ++++++++++++++++++ 6 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 .yarn/offline-mirror/@carbon-ibmdotcom-services-1.31.0-canary.1827018708.0.tgz create mode 100644 .yarn/offline-mirror/@carbon-ibmdotcom-utilities-1.31.0-canary.1827018708.0.tgz diff --git a/.yarn/offline-mirror/@carbon-ibmdotcom-services-1.31.0-canary.1827018708.0.tgz b/.yarn/offline-mirror/@carbon-ibmdotcom-services-1.31.0-canary.1827018708.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cc2b13bacc0b5c486a033c368d99ffd7c9a83f1d GIT binary patch literal 35467 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 Pm-GDp*h{0r09XS6?e6*s literal 0 HcmV?d00001 diff --git a/packages/services-store/package.json b/packages/services-store/package.json index 961a4342191..46592c5265a 100644 --- a/packages/services-store/package.json +++ b/packages/services-store/package.json @@ -39,8 +39,8 @@ "prettier": "^1.19.0" }, "dependencies": { - "@carbon/ibmdotcom-services": "1.31.0-canary.adhoc5.6836", - "@carbon/ibmdotcom-utilities": "1.31.0-canary.adhoc5.6836", + "@carbon/ibmdotcom-services": "canary", + "@carbon/ibmdotcom-utilities": "canary", "carbon-components": "10.52.0", "redux": "^4.0.0", "redux-logger": "^3.0.0", diff --git a/packages/services/src/services/CloudAccountAuth/CloudAccountAuth.js b/packages/services/src/services/CloudAccountAuth/CloudAccountAuth.js index 62840ecf8e7..471e1937ba1 100644 --- a/packages/services/src/services/CloudAccountAuth/CloudAccountAuth.js +++ b/packages/services/src/services/CloudAccountAuth/CloudAccountAuth.js @@ -22,7 +22,7 @@ class CloudAccountAuthAPI { */ static async checkPersonalization() { return await DDOAPI.isReady().then(() => { - const status = root.digitalData.user.segment.isCloudLoggedOn; + const status = root.digitalData?.user?.segment?.isCloudLoggedOn; return { user: status === true ? 'authenticated' : 'anonymous' }; }); } diff --git a/packages/web-components/package.json b/packages/web-components/package.json index f55db9b2d53..ac04a9c7d82 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -96,9 +96,9 @@ "prettier": "^1.19.0" }, "dependencies": { - "@carbon/ibmdotcom-services": "1.31.0-canary.adhoc5.6836", + "@carbon/ibmdotcom-services": "canary", "@carbon/ibmdotcom-styles": "1.31.0-rc.0", - "@carbon/ibmdotcom-utilities": "1.31.0-canary.adhoc5.6836", + "@carbon/ibmdotcom-utilities": "canary", "@carbon/layout": "10.34.0", "@carbon/telemetry": "0.0.0-alpha.6", "carbon-components": "10.52.0", diff --git a/yarn.lock b/yarn.lock index 5d8b12b1a7e..0c0ea89fb16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1367,6 +1367,17 @@ axios "~0.21.4" window-or-global "^1.0.1" +"@carbon/ibmdotcom-services@canary": + version "1.31.0-canary.1827018708.0" + resolved "https://registry.yarnpkg.com/@carbon/ibmdotcom-services/-/ibmdotcom-services-1.31.0-canary.1827018708.0.tgz#2fa24ea199cdf026e177ba74f76f9190cf810ca8" + integrity sha512-9RvnbOtST2klP1sm4WhssXGr7Ey9vVu5a96TP4gahdv6hk9Vl+FyqU/oEbJ0lcKmdnN+8b82wpfaFK9h1LUu7w== + dependencies: + "@babel/runtime" "^7.5.0" + "@carbon/ibmdotcom-utilities" "1.31.0-canary.adhoc5.6836" + "@carbon/telemetry" "0.0.0-alpha.6" + axios "~0.21.4" + window-or-global "^1.0.1" + "@carbon/ibmdotcom-utilities@1.31.0-canary.adhoc5.6836", "@carbon/ibmdotcom-utilities@1.31.0-canary.adhoc5.6836+acf59c1b5": version "1.31.0-canary.adhoc5.6836" resolved "https://registry.yarnpkg.com/@carbon/ibmdotcom-utilities/-/ibmdotcom-utilities-1.31.0-canary.adhoc5.6836.tgz#61ebb6aaa3df135905ebc11f79c42927f250d839" @@ -1380,6 +1391,19 @@ marked "^4.0.10" window-or-global "^1.0.1" +"@carbon/ibmdotcom-utilities@canary": + version "1.31.0-canary.1827018708.0" + resolved "https://registry.yarnpkg.com/@carbon/ibmdotcom-utilities/-/ibmdotcom-utilities-1.31.0-canary.1827018708.0.tgz#37048fa89a65e34964f882a5c6de3329b428543e" + integrity sha512-1bAci1BdK3hykH29eKRlcRqQuNA8bOoOaHhwnCNFhZdGkUiXuA7A8W55JnMdC8an0UGXcMMGu5Gr0VmRzIhtsQ== + dependencies: + "@carbon/telemetry" "0.0.0-alpha.6" + axios "~0.21.4" + carbon-components "10.52.0" + isomorphic-dompurify "0.4.0" + js-cookie "^2.2.1" + marked "^4.0.10" + window-or-global "^1.0.1" + "@carbon/icon-helpers@10.26.0", "@carbon/icon-helpers@^10.26.0": version "10.26.0" resolved "https://registry.yarnpkg.com/@carbon/icon-helpers/-/icon-helpers-10.26.0.tgz#fe8277836e7b758ae48c93fbab8aab444b2f3b70" From 3704c5087c1747e8e255b80b57176bb459a1051b Mon Sep 17 00:00:00 2001 From: Andy Blum Date: Fri, 11 Feb 2022 15:33:01 -0500 Subject: [PATCH 3/3] test(masthead): add e2e coverage for cloud masthead (experimental) (#8174) ### Related Ticket(s) Closes #8133 & #8138 ### Changelog **New** - Adds e2e coverage for the cloud masthead --- .github/workflows/e2e-tests.yml | 6 + .../__stories__/cloud-masthead.stories.ts | 9 +- .../masthead/cloud/cloud-masthead.e2e.js | 255 ++++++++++++++++++ .../e2e-storybook/cypress/plugins/index.js | 5 + 4 files changed, 272 insertions(+), 3 deletions(-) create mode 100644 packages/web-components/tests/e2e-storybook/cypress/integration/masthead/cloud/cloud-masthead.e2e.js diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 782958f1104..7643de917bb 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -29,6 +29,12 @@ jobs: run: yarn install --offline - name: Build project run: yarn lerna run --stream --ignore @carbon/ibmdotcom-react build + - name: Set Cloud Masthead env var + uses: ./.github/actions/set-dotenv + with: + env-file: packages/web-components/.env + env: + DDS_CLOUD_MASTHEAD: true - name: Build storybook working-directory: packages/web-components run: yarn build-storybook diff --git a/packages/web-components/src/components/masthead/__stories__/cloud-masthead.stories.ts b/packages/web-components/src/components/masthead/__stories__/cloud-masthead.stories.ts index 0f4d7fd4f09..a918a70e0d8 100644 --- a/packages/web-components/src/components/masthead/__stories__/cloud-masthead.stories.ts +++ b/packages/web-components/src/components/masthead/__stories__/cloud-masthead.stories.ts @@ -31,14 +31,17 @@ const platformData = { }; const urlObject = { + default: { + url: 'https://www.ibm.com/cloud', + }, 'en-US': { - url: 'https://www.example.com/us-en', + url: 'https://www.ibm.com/us-en/cloud', }, 'fr-FR': { - url: 'https://www.example.com/fr-fr/sample', + url: 'https://www.ibm.com/fr-fr/cloud', }, 'es-MX': { - url: 'https://www.example.com/es-mx/sample', + url: 'https://www.ibm.com/es-mx/cloud', }, }; diff --git a/packages/web-components/tests/e2e-storybook/cypress/integration/masthead/cloud/cloud-masthead.e2e.js b/packages/web-components/tests/e2e-storybook/cypress/integration/masthead/cloud/cloud-masthead.e2e.js new file mode 100644 index 00000000000..2171a9f97e7 --- /dev/null +++ b/packages/web-components/tests/e2e-storybook/cypress/integration/masthead/cloud/cloud-masthead.e2e.js @@ -0,0 +1,255 @@ +/** + * Copyright IBM Corp. 2021, 2022 + * + * This source code is licensed under the Apache-2.0 license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Sets the correct path (default Masthead) + * + * @type {string} + * @private + */ +const _pathDefault = '/iframe.html?id=components-cloud-masthead--default'; + +function clickUntilGone($el) { + if ($el.is(':visible')) { + cy.get($el) + .click() + .wait(1000) + .then($clicked => { + if ($clicked.is(':visible')) { + clickUntilGone($clicked); + } + }); + } +} + +if (Cypress.env('DDS_CLOUD_MASTHEAD').toLowerCase() === 'true') { + describe('dds-masthead | cloud platform (desktop)', () => { + beforeEach(() => { + cy.viewport(1280, 780); + cy.visit(`/${_pathDefault}`); + }); + + it('should have url for IBM logo', () => { + cy.get('dds-masthead-logo') + .shadow() + .find('a') + .then($link => { + const url = new URL($link.prop('href')); + expect(['www.ibm.com', 'ibm.com']).to.include(url.host); + expect(url.pathname).to.be.equal('/'); + }); + }); + + it('should have cloud platform name', () => { + cy.get('dds-cloud-top-nav-name') + .shadow() + .find('a') + .then($link => { + const url = new URL($link.prop('href')); + const [langOrCloud, cloudOrNull] = url.split('/').filter(segment => segment !== ''); + expect(['www.ibm.com', 'ibm.com']).to.include(url.host); + expect([langOrCloud, cloudOrNull]).to.include('cloud'); + }); + }); + + it('should load top-nav with no more than one active item', () => { + cy.get('dds-top-nav > *').then($topNavItems => { + const $activeItems = $topNavItems.filter('[active]'); + expect($topNavItems.length).to.be.greaterThan(1); + expect($activeItems.length).to.be.equal(1); + }); + }); + + it('should have tabbed-interface megamenus', () => { + cy.get('dds-top-nav > dds-megamenu-top-nav-menu').each($megaMenuNavItem => { + cy.get($megaMenuNavItem) + .shadow() + .find('a') + .click({ force: true }) + .parent() + .find('dds-cloud-megamenu') + .should('be.visible') + .get('dds-cloud-megamenu-tab', { withinSubject: $megaMenuNavItem }) + .each($tab => { + cy.get($tab) + .click('right') + .then($tab => { + const panelSelector = `#${$tab.attr('target')}`; + cy.get(panelSelector).should('be.visible'); + }); + }); + }); + }); + + it('should have functioning search bar with typeahead', () => { + cy.get('.bx--header__search--search') + .click() + .wait(1000) + .get('.bx--header__search--input') + .should('have.focus') + .type('test', { force: true }) + .get('dds-search-with-typeahead-item') + .then($results => { + expect($results.length).to.be.equal(10); + }) + .get('dds-megamenu-top-nav-menu, dds-top-nav-menu, dds-top-nav-menu-item') + .should('not.be.visible'); + }); + + it('should have contact, login, and create-account CTAs', () => { + cy.get('dds-cloud-button-cta[data-ibm-contact="contact-link"]') + .should('be.visible') + .click() + .get('dds-cloud-button-cta[href="https://cloud.ibm.com/login"]') + .should('be.visible') + .click() + .get('dds-cloud-button-cta[kind="primary"]') + .should('be.visible') + .click(); + }); + + it('should be able to scroll all nav elements into view if necessary', () => { + cy.viewport(960, 780) + .get('dds-top-nav') + .shadow() + .find('button') + .should($buttons => { + expect($buttons).to.have.length(2); + }) + .then($buttons => { + let navItem, prevOffsetLeft; + cy.get('.bx--header__nav') + .then($nav => { + navItem = $nav; + prevOffsetLeft = $nav.offset().left; + }) + .get($buttons[0]) + .click({ force: true }) + .wait(1000) + .click({ force: true }) + .wait(1000) + .then(() => { + expect(navItem.offset().left).to.be.gte(prevOffsetLeft); + prevOffsetLeft = navItem.offset().left; + }) + .get($buttons[1]) + .click({ force: true }) + .wait(1000) + .click({ force: true }) + .wait(1000) + .then(() => { + expect(navItem.offset().left).to.be.lte(prevOffsetLeft); + prevOffsetLeft = navItem.offset().left; + }) + .get($buttons[0]) + .click({ force: true }) + .wait(1000) + .click({ force: true }) + .wait(1000) + .then(() => { + expect(navItem.offset().left).to.be.gte(prevOffsetLeft); + prevOffsetLeft = navItem.offset().left; + }); + }); + }); + }); + + describe('dds-masthead | cloud platform (mobile)', () => { + beforeEach(() => { + cy.viewport(325, 780); + cy.visit(`/${_pathDefault}`); + }); + + it('should have url for IBM logo', () => { + cy.get('dds-masthead-logo') + .shadow() + .find('a') + .then($link => { + const url = new URL($link.prop('href')); + const [langOrCloud, cloudOrNull] = url.split('/').filter(segment => segment !== ''); + expect(['www.ibm.com', 'ibm.com']).to.include(url.host); + expect([langOrCloud, cloudOrNull]).to.include('cloud'); + }); + }); + + it('should have cloud platform name', () => { + cy.get('dds-cloud-top-nav-name') + .shadow() + .find('a') + .then($link => { + const url = new URL($link.prop('href')); + expect(['www.ibm.com', 'ibm.com']).to.include(url.host); + expect(['/cloud', '/cloud/']).to.include(url.pathname); + }); + }); + + it('should load menu hidden behind hamburger button', () => { + cy.get('dds-top-nav') + .should('not.be.visible') + .get('dds-left-nav') + .should('not.be.visible') + .get('dds-masthead-menu-button') + .click() + .get('dds-left-nav') + .should('be.visible'); + }); + + it('should load top-nav with no more than one active item', () => { + cy.get('dds-masthead-menu-button') + .click() + .get('dds-left-nav-menu-section[expanded] > *') + .then($topNavItems => { + const $activeItems = $topNavItems.filter('[active]'); + expect($topNavItems.length).to.be.greaterThan(1); + expect($activeItems.length).to.be.equal(1); + }); + }); + + it('should have paged slide-out navigation', () => { + cy.get('dds-masthead-menu-button') + .click() + .get('dds-left-nav-menu-section[expanded] > dds-left-nav-menu') + .each($submenuItem => { + const sectionSelector = `[section-id="${$submenuItem.attr('panel-id')}"]`; + const backSelector = cy + .get($submenuItem) + .click() + .get(sectionSelector) + .should('be.visible') + .shadow() + .find('.bx--masthead__side-nav--submemu-back button') + .click() + .get($submenuItem) + .should('be.visible'); + }); + }); + + it('should have functioning search bar with typeahead', () => { + cy.get('.bx--header__search--search') + .click() + .wait(1000) + .get('.bx--header__search--input') + .should('have.focus') + .type('test', { force: true }) + .get('dds-search-with-typeahead-item') + .then($results => { + expect($results.length).to.be.equal(10); + }) + .get('dds-megamenu-top-nav-menu, dds-top-nav-menu, dds-top-nav-menu-item') + .should('not.be.visible'); + }); + + it('should have contact, login, and create-account CTAs', () => { + cy.get('dds-masthead-menu-button') + .click() + .get('dds-cloud-left-nav-item[href="https://cloud.ibm.com/login"]') + .should('be.visible') + .get('dds-cloud-left-nav-item[href="https://cloud.ibm.com/registration"]') + .should('be.visible'); + }); + }); +} diff --git a/packages/web-components/tests/e2e-storybook/cypress/plugins/index.js b/packages/web-components/tests/e2e-storybook/cypress/plugins/index.js index 81a6d7199a7..cc809644726 100644 --- a/packages/web-components/tests/e2e-storybook/cypress/plugins/index.js +++ b/packages/web-components/tests/e2e-storybook/cypress/plugins/index.js @@ -5,8 +5,11 @@ * LICENSE file in the root directory of this source tree. */ +require('dotenv').config({ path: `${__dirname}/../../../../.env` }); + // eslint-disable-next-line no-unused-vars module.exports = (on, config) => { + config.env.DDS_CLOUD_MASTHEAD = process.env.DDS_CLOUD_MASTHEAD; // `on` is used to hook into various events Cypress emits // `config` is the resolved Cypress config on('before:browser:launch', (browser = {}, launchOptions) => { @@ -16,4 +19,6 @@ module.exports = (on, config) => { return launchOptions; } }); + + return config; };