From 39c1c89253ee1a3d03ad3b3d826a512156bc8d63 Mon Sep 17 00:00:00 2001 From: mochi33i <44772513+mochi-sann@users.noreply.github.com> Date: Sun, 26 Feb 2023 16:56:52 +0900 Subject: [PATCH 1/2] =?UTF-8?q?test(e2e):=20=E3=83=96=E3=83=A9=E3=82=A6?= =?UTF-8?q?=E3=82=B6=E3=81=AE=E8=A8=80=E8=AA=9E=E8=A8=AD=E5=AE=9A=E3=81=AB?= =?UTF-8?q?=E3=82=88=E3=81=A3=E3=81=A6misskey=E3=81=AE=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=99=E3=82=8B=E8=A8=80=E8=AA=9E=E3=82=92=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=99=E3=82=8B=E3=83=86=E3=82=B9=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cypress/e2e/basic.cy.js | 1 - cypress/e2e/language.cy.js | 110 +++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 cypress/e2e/language.cy.js diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js index eb5195c4b2..9d392f18da 100644 --- a/cypress/e2e/basic.cy.js +++ b/cypress/e2e/basic.cy.js @@ -107,7 +107,6 @@ describe('After user signup', () => { cy.get('[data-cy-signin-username] input').type('alice'); cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); - // TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi); }); }); diff --git a/cypress/e2e/language.cy.js b/cypress/e2e/language.cy.js new file mode 100644 index 0000000000..8b6a95f762 --- /dev/null +++ b/cypress/e2e/language.cy.js @@ -0,0 +1,110 @@ + +describe('Change the language to Japanese', () => { + beforeEach(() => { + cy.resetState(); + + cy.visit("/", { + onBeforeLoad(window) { + Object.defineProperty(window.navigator, 'language', { value: 'ja-JP' }) + Object.defineProperty(window.navigator, 'languages', { value: ['ja'] }) + Object.defineProperty(window.navigator, 'accept_languages', { value: ['ja'] }) + }, + headers: { + 'Accept-Language': 'ja' + } + }) + // インスタンス初期セットアップ + cy.registerUser('admin', 'pass', true); + + // ユーザー作成 + cy.registerUser('alice', 'alice1234'); + + cy.login('alice', 'alice1234'); + }); + + afterEach(() => { + + // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 + // waitを入れることでそれを防止できる + cy.wait(1000); + }); + + it('display language is english', () => { + cy.get('html').should('have.attr', 'lang', 'ja-JP'); + cy.contains("ようこそ"); + }); +}); + + +describe('Change the language to English', () => { + beforeEach(() => { + cy.resetState(); + + cy.visit("/", { + onBeforeLoad(window) { + Object.defineProperty(window.navigator, 'language', { value: 'en-US' }) + Object.defineProperty(window.navigator, 'languages', { value: ['en'] }) + Object.defineProperty(window.navigator, 'accept_languages', { value: ['en'] }) + }, + headers: { + 'Accept-Language': 'en' + } + }) + // インスタンス初期セットアップ + cy.registerUser('admin', 'pass', true); + + // ユーザー作成 + cy.registerUser('alice', 'alice1234'); + + cy.login('alice', 'alice1234'); + }); + + afterEach(() => { + + // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 + // waitを入れることでそれを防止できる + cy.wait(1000); + }); + + it('display language is english', () => { + cy.get('html').should('have.attr', 'lang', 'en-US'); + cy.contains("Welcome!"); + + }); +}); + +describe('Change the language to Chinese', () => { + beforeEach(() => { + cy.resetState(); + + cy.visit("/", { + onBeforeLoad(window) { + Object.defineProperty(window.navigator, 'language', { value: 'zh' }) + Object.defineProperty(window.navigator, 'languages', { value: ['zh'] }) + Object.defineProperty(window.navigator, 'accept_languages', { value: ['zh'] }) + }, + headers: { + 'Accept-Language': 'zh' + } + }) + // インスタンス初期セットアップ + cy.registerUser('admin', 'pass', true); + + // ユーザー作成 + cy.registerUser('alice', 'alice1234'); + + cy.login('alice', 'alice1234'); + }); + + afterEach(() => { + + // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 + // waitを入れることでそれを防止できる + cy.wait(1000); + }); + + it('display language is english', () => { + cy.get('html').should('have.attr', 'lang', 'zh-CN'); + cy.contains("欢迎!"); + }); +}); From 548538188fdf19943f33045cd95fd53dbc6f1a8e Mon Sep 17 00:00:00 2001 From: mochi33i <44772513+mochi-sann@users.noreply.github.com> Date: Fri, 3 Mar 2023 17:01:10 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E5=89=8A=E9=99=A4=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E3=82=82=E3=81=A8?= =?UTF-8?q?=E3=81=AB=E6=88=BB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cypress/e2e/basic.cy.js | 1 + 1 file changed, 1 insertion(+) diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js index 9d392f18da..eb5195c4b2 100644 --- a/cypress/e2e/basic.cy.js +++ b/cypress/e2e/basic.cy.js @@ -107,6 +107,7 @@ describe('After user signup', () => { cy.get('[data-cy-signin-username] input').type('alice'); cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); + // TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi); }); });