-
Notifications
You must be signed in to change notification settings - Fork 158
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into fp-remove-view-all
- Loading branch information
Showing
11 changed files
with
307 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+34.6 KB
.yarn/offline-mirror/@carbon-ibmdotcom-services-1.31.0-canary.1827018708.0.tgz
Binary file not shown.
Binary file added
BIN
+24.8 KB
.yarn/offline-mirror/@carbon-ibmdotcom-utilities-1.31.0-canary.1827018708.0.tgz
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
255 changes: 255 additions & 0 deletions
255
...b-components/tests/e2e-storybook/cypress/integration/masthead/cloud/cloud-masthead.e2e.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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'); | ||
}); | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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/[email protected]", "@carbon/[email protected]+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/[email protected]", "@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" | ||
|