fix: 登録時のフォームにおいて送信できる条件を修正 (#10238)

* fix: 登録時のフォームにおいて送信できる条件を修正

* テストを追加
This commit is contained in:
RyotaK 2023-03-07 16:07:13 +09:00 committed by GitHub
parent 60c1af674f
commit 6feead5185
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View file

@ -52,12 +52,25 @@ describe('After setup instance', () => {
cy.intercept('POST', '/api/signup').as('signup'); cy.intercept('POST', '/api/signup').as('signup');
cy.get('[data-cy-signup]').click(); cy.get('[data-cy-signup]').click();
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-username] input').type('alice'); cy.get('[data-cy-signup-username] input').type('alice');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-password] input').type('alice1234'); cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-password-retype] input').type('alice1234'); cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('not.be.disabled');
cy.get('[data-cy-signup-submit]').click(); cy.get('[data-cy-signup-submit]').click();
cy.wait('@signup'); cy.wait('@signup');
cy.visitHome();
// ユーザー名が重複している場合の挙動確認
cy.get('[data-cy-signup]').click();
cy.get('[data-cy-signup-username] input').type('alice');
cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
}); });
}); });

View file

@ -117,7 +117,9 @@ const shouldDisableSubmitting = $computed((): boolean => {
instance.enableHcaptcha && !hCaptchaResponse || instance.enableHcaptcha && !hCaptchaResponse ||
instance.enableRecaptcha && !reCaptchaResponse || instance.enableRecaptcha && !reCaptchaResponse ||
instance.enableTurnstile && !turnstileResponse || instance.enableTurnstile && !turnstileResponse ||
passwordRetypeState === 'not-match'; instance.emailRequiredForSignup && emailState !== 'ok' ||
usernameState !== 'ok' ||
passwordRetypeState !== 'match';
}); });
function onChangeUsername(): void { function onChangeUsername(): void {