Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quantum-kittens
GitHub Repository: quantum-kittens/platypus
Path: blob/main/cypress/integration/translations/locales.spec.js
3855 views
1
/// <reference types="cypress" />
2
3
describe('Language Selector Macbook-15', () => {
4
beforeEach(() => {
5
cy.viewport('macbook-15')
6
.visit('/course/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
7
8
// set cookies to prevent IBM privacy policy popup
9
.setCookie('cmapi_cookie_privacy', 'permit_1|2|3')
10
.setCookie('cmapi_gtm_bl', '')
11
.setCookie('notice_gdpr_prefs', '0|1|2:')
12
.setCookie('notice_preferences', '2:')
13
14
.reload()
15
})
16
17
it('Can select a non-English, translated language', () => {
18
// navigate to page w/ translations
19
cy.url().should('include', '/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
20
// select Japanese
21
cy.get('.language-selector__dropdown').shadow().find('.bx--list-box__field').click()
22
cy.get('.language-selector__dropdown > .language-selector__item').contains('Japanese').click()
23
24
cy.url().should('include', '?hl=ja')
25
cy.get('.language-selector__dropdown')
26
.shadow()
27
.find('#trigger-label')
28
.should('have.text', 'Japanese')
29
30
// lang attribute
31
cy.get('html').should('have.attr', 'lang', 'ja')
32
})
33
34
it('Can select the English version', () => {
35
// navigate to page w/ translations
36
cy.url().should('include', '/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
37
38
// select Japanese
39
cy.get('.language-selector__dropdown').shadow().find('.bx--list-box__field').click()
40
cy.get('.language-selector__dropdown > .language-selector__item').contains('Japanese').click()
41
cy.url().should('include', '?hl=ja')
42
43
// select English
44
cy.get('.language-selector__dropdown').shadow().find('.bx--list-box__field').click()
45
cy.get('.language-selector__dropdown > .language-selector__item').contains('English').click()
46
47
cy.url().should('not.include', '?hl')
48
cy.get('.language-selector__dropdown')
49
.shadow()
50
.find('#trigger-label')
51
.should('have.text', 'English')
52
53
// lang attribute
54
cy.get('html').should('have.attr', 'lang', 'en')
55
})
56
57
it('Can render translate toggle button properly', () => {
58
// navigate to page w/ translations
59
cy.url().should('include', '/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
60
61
// hide index
62
cy.get('#app-panel-footer-toggle').click()
63
cy.get('.language-selector').should('not.be.visible')
64
cy.get('#app-panel-language-toggle').should('be.visible')
65
})
66
67
it('Can show LanguageSelector options when translate toggle button is clicked', () => {
68
// navigate to page w/ translations
69
cy.url().should('include', '/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
70
71
// hide index
72
cy.get('#app-panel-footer-toggle').click()
73
cy.get('#app-panel-language-toggle').should('be.visible')
74
// show index
75
cy.get('#app-panel-language-toggle').click()
76
cy.get('.language-selector').should('be.visible')
77
78
cy.get('.language-selector__dropdown > .language-selector__item').contains('English').should('be.visible')
79
cy.get('.language-selector__dropdown > .language-selector__item').contains('Japanese').should('be.visible')
80
})
81
82
it('Should not show the unavailable language indicator', () => {
83
// navigate to page w/ translations
84
cy.url().should('include', '/ch-prerequisites/introduction-to-python-and-jupyter-notebooks')
85
86
// click on the language selector drop down
87
cy.get('[data-test=language-selector]')
88
.shadow()
89
.find('[part=trigger-button]')
90
.click()
91
92
// check the language option does not have an indicator
93
cy.get('[data-test=language-select-ja]')
94
.find('[data-test=language-select-tooltip]')
95
.should('not.exist')
96
})
97
98
it('Should show the unavailable language indicator', () => {
99
// navigate to page w/o translations
100
cy.visit('/problem-sets/single_systems_problem_set')
101
cy.url().should('include', '/problem-sets/single_systems_problem_set')
102
103
// click on the language selector drop down
104
cy.get('[data-test=language-selector]')
105
.shadow()
106
.find('[part=trigger-button]')
107
.click()
108
109
// check the language option does have an indicator and no message visible
110
cy.get('[data-test=language-select-ja]')
111
.find('[data-test=language-select-tooltip]')
112
.should('exist')
113
})
114
})
115
116