| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- import SplitTestBadge from '../../../../frontend/js/shared/components/split-test-badge'
- import { EditorProviders } from '../../helpers/editor-providers'
- describe('split test badge', function () {
- it('renders an alpha badge with the url and tooltip text', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'active',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'alpha',
- badgeInfo: {
- url: '/alpha/participate',
- tooltipText: 'This is an alpha feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('a.badge.alpha-badge[href="/alpha/participate"]').contains(
- 'This is an alpha feature'
- )
- })
- it('does not render the alpha badge when user is not assigned to the variant', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'default',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'alpha',
- badgeInfo: {
- url: '/alpha/participate',
- tooltipText: 'This is an alpha feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('.badge').should('not.exist')
- })
- it('renders a beta badge with the url and tooltip text', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'active',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'beta',
- badgeInfo: {
- url: '/beta/participate',
- tooltipText: 'This is a beta feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('a.badge.beta-badge[href="/beta/participate"]').contains(
- 'This is a beta feature'
- )
- })
- it('does not render the beta badge when user is not assigned to the variant', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'default',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'beta',
- badgeInfo: {
- url: '/beta/participate',
- tooltipText: 'This is a beta feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('.badge').should('not.exist')
- })
- it('renders an info badge with the url and tooltip text', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'active',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'release',
- badgeInfo: {
- url: '/feedback/form',
- tooltipText: 'This is a new feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('a.badge.info-badge[href="/feedback/form"]').contains(
- 'This is a new feature'
- )
- })
- it('does not render the info badge when user is not assigned to the variant', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'default',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'release',
- badgeInfo: {
- url: '/feedback/form',
- tooltipText: 'This is a new feature',
- },
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('.badge').should('not.exist')
- })
- it('does not render the badge when no split test info is available', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'active',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {})
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('.badge').should('not.exist')
- })
- it('default badge url and text are used when not provided', function () {
- cy.window().then(win => {
- win.metaAttributesCache.set('ol-splitTestVariants', {
- 'cypress-test': 'active',
- })
- win.metaAttributesCache.set('ol-splitTestInfo', {
- 'cypress-test': {
- phase: 'release',
- },
- })
- })
- cy.mount(
- <EditorProviders>
- <SplitTestBadge
- splitTestName="cypress-test"
- displayOnVariants={['active']}
- />
- </EditorProviders>
- )
- cy.get('a.badge.info-badge[href="/beta/participate"]')
- .contains('We are testing this new feature.')
- .contains('Click to give feedback')
- })
- })
|