mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-26 17:16:11 -05:00
revised join flow tests
This commit is contained in:
parent
7b2e75821c
commit
b1d71f2a4d
1 changed files with 64 additions and 65 deletions
|
@ -97,8 +97,8 @@ describe('JoinFlow', () => {
|
||||||
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
||||||
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: 'registration.problemsAre "username: This field is required."'
|
errorMsg: 'registration.problemsAre: "username: This field is required."'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ describe('JoinFlow', () => {
|
||||||
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
||||||
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: null
|
errorMsg: null
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -142,7 +142,7 @@ describe('JoinFlow', () => {
|
||||||
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
||||||
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: null
|
errorMsg: null
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -164,7 +164,7 @@ describe('JoinFlow', () => {
|
||||||
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
joinFlowInstance.handleRegistrationResponse(responseErr, responseBody, responseObj);
|
||||||
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
expect(joinFlowInstance.props.refreshSession).not.toHaveBeenCalled();
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: true
|
errorAllowsTryAgain: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ describe('JoinFlow', () => {
|
||||||
joinFlowInstance.setState({});
|
joinFlowInstance.setState({});
|
||||||
joinFlowInstance.handleCaptchaError();
|
joinFlowInstance.handleCaptchaError();
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: 'registration.errorCaptcha'
|
errorMsg: 'registration.errorCaptcha'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -214,13 +214,13 @@ describe('JoinFlow', () => {
|
||||||
expect(progressionWrapper).toHaveLength(1);
|
expect(progressionWrapper).toHaveLength(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('when numAttempts is 0 and registrationError canTryAgain is true, ' +
|
test('when numAttempts is 0 and registrationError errorAllowsTryAgain is true, ' +
|
||||||
'RegistrationErrorStep receives canTryAgain prop with value true', () => {
|
'RegistrationErrorStep receives errorAllowsTryAgain prop with value true', () => {
|
||||||
const joinFlowWrapper = getJoinFlowWrapper();
|
const joinFlowWrapper = getJoinFlowWrapper();
|
||||||
joinFlowWrapper.instance().setState({
|
joinFlowWrapper.instance().setState({
|
||||||
numAttempts: 0,
|
numAttempts: 0,
|
||||||
registrationError: {
|
registrationError: {
|
||||||
canTryAgain: true,
|
errorAllowsTryAgain: true,
|
||||||
errorMsg: 'halp there is a errors!!'
|
errorMsg: 'halp there is a errors!!'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -228,13 +228,13 @@ describe('JoinFlow', () => {
|
||||||
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(true);
|
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('when numAttempts is 1 and registrationError canTryAgain is true, ' +
|
test('when numAttempts is 1 and registrationError errorAllowsTryAgain is true, ' +
|
||||||
'RegistrationErrorStep receives canTryAgain prop with value true', () => {
|
'RegistrationErrorStep receives errorAllowsTryAgain prop with value true', () => {
|
||||||
const joinFlowWrapper = getJoinFlowWrapper();
|
const joinFlowWrapper = getJoinFlowWrapper();
|
||||||
joinFlowWrapper.instance().setState({
|
joinFlowWrapper.instance().setState({
|
||||||
numAttempts: 1,
|
numAttempts: 1,
|
||||||
registrationError: {
|
registrationError: {
|
||||||
canTryAgain: true,
|
errorAllowsTryAgain: true,
|
||||||
errorMsg: 'halp there is a errors!!'
|
errorMsg: 'halp there is a errors!!'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -242,13 +242,13 @@ describe('JoinFlow', () => {
|
||||||
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(true);
|
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('when numAttempts is 2 and registrationError canTryAgain is true, ' +
|
test('when numAttempts is 2 and registrationError errorAllowsTryAgain is true, ' +
|
||||||
'RegistrationErrorStep receives canTryAgain prop with value false', () => {
|
'RegistrationErrorStep receives errorAllowsTryAgain prop with value false', () => {
|
||||||
const joinFlowWrapper = getJoinFlowWrapper();
|
const joinFlowWrapper = getJoinFlowWrapper();
|
||||||
joinFlowWrapper.instance().setState({
|
joinFlowWrapper.instance().setState({
|
||||||
numAttempts: 2,
|
numAttempts: 2,
|
||||||
registrationError: {
|
registrationError: {
|
||||||
canTryAgain: true,
|
errorAllowsTryAgain: true,
|
||||||
errorMsg: 'halp there is a errors!!'
|
errorMsg: 'halp there is a errors!!'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -256,13 +256,13 @@ describe('JoinFlow', () => {
|
||||||
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(false);
|
expect(registrationErrorWrapper.first().props().canTryAgain).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('when numAttempts is 0 and registrationError canTryAgain is false, ' +
|
test('when numAttempts is 0 and registrationError errorAllowsTryAgain is false, ' +
|
||||||
'RegistrationErrorStep receives canTryAgain prop with value false', () => {
|
'RegistrationErrorStep receives errorAllowsTryAgain prop with value false', () => {
|
||||||
const joinFlowWrapper = getJoinFlowWrapper();
|
const joinFlowWrapper = getJoinFlowWrapper();
|
||||||
joinFlowWrapper.instance().setState({
|
joinFlowWrapper.instance().setState({
|
||||||
numAttempts: 0,
|
numAttempts: 0,
|
||||||
registrationError: {
|
registrationError: {
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: 'halp there is a errors!!'
|
errorMsg: 'halp there is a errors!!'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -304,80 +304,80 @@ describe('JoinFlow', () => {
|
||||||
expect(formDataReference).not.toEqual(joinFlowInstance.state.formData);
|
expect(formDataReference).not.toEqual(joinFlowInstance.state.formData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getBodyErrors returns object of errors', () => {
|
test('getErrorsFromResponse returns object of errors', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors(null, responseBodyMultipleErrs, {statusCode: 200});
|
const errorsFromResponse =
|
||||||
expect(bodyErrors).toEqual({
|
joinFlowInstance.getErrorsFromResponse(null, responseBodyMultipleErrs, {statusCode: 200});
|
||||||
username: ['This field is required.'],
|
expect(errorsFromResponse).toEqual([
|
||||||
recaptcha: ['Incorrect, please try again.']
|
{
|
||||||
});
|
fieldName: 'username',
|
||||||
});
|
errorStr: 'This field is required.'
|
||||||
|
}, {
|
||||||
test('getBodyErrors called with non-null err returns falsy', () => {
|
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors({}, responseBodyMultipleErrs, {statusCode: 200});
|
|
||||||
expect(bodyErrors).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('getBodyErrors called with non-200 status code returns falsy', () => {
|
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors({}, responseBodyMultipleErrs, {statusCode: 400});
|
|
||||||
expect(bodyErrors).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('getSingleError returns single error, when given response body with only one error', () => {
|
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors(null, responseBodySingleErr, {statusCode: 200});
|
|
||||||
const singleError = joinFlowInstance.getSingleError(bodyErrors);
|
|
||||||
expect(singleError).toEqual({
|
|
||||||
fieldName: 'recaptcha',
|
fieldName: 'recaptcha',
|
||||||
errorStr: 'Incorrect, please try again.'
|
errorStr: 'Incorrect, please try again.'
|
||||||
});
|
}
|
||||||
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getSingleError returns falsy, when given response body with multiple errors', () => {
|
test('getErrorsFromResponse called with non-null err returns empty array', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors(null, responseBodyMultipleErrs, {statusCode: 200});
|
const errorsFromResponse =
|
||||||
const singleError = joinFlowInstance.getSingleError(bodyErrors);
|
joinFlowInstance.getErrorsFromResponse({}, responseBodyMultipleErrs, {statusCode: 200});
|
||||||
expect(singleError).toBeFalsy();
|
expect(errorsFromResponse).toEqual([]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('getErrorsFromResponse called with non-200 status code returns empty array', () => {
|
||||||
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
|
const errorsFromResponse =
|
||||||
|
joinFlowInstance.getErrorsFromResponse({}, responseBodyMultipleErrs, {statusCode: 400});
|
||||||
|
expect(errorsFromResponse).toEqual([]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('getErrorsFromResponse gets single error, when given response body with only one error', () => {
|
||||||
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
|
const errorsFromResponse =
|
||||||
|
joinFlowInstance.getErrorsFromResponse(null, responseBodySingleErr, {statusCode: 200});
|
||||||
|
expect(errorsFromResponse.length).toEqual(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getCustomErrMsg string when given response body with multiple errors', () => {
|
test('getCustomErrMsg string when given response body with multiple errors', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors(null, responseBodyMultipleErrs, {statusCode: 200});
|
const errorsFromResponse =
|
||||||
const customErrMsg = joinFlowInstance.getCustomErrMsg(bodyErrors);
|
joinFlowInstance.getErrorsFromResponse(null, responseBodyMultipleErrs, {statusCode: 200});
|
||||||
expect(customErrMsg).toEqual('registration.problemsAre "username: This field is required.; ' +
|
const customErrMsg = joinFlowInstance.getCustomErrMsg(errorsFromResponse);
|
||||||
|
expect(customErrMsg).toEqual('registration.problemsAre: "username: This field is required.; ' +
|
||||||
'recaptcha: Incorrect, please try again."');
|
'recaptcha: Incorrect, please try again."');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getCustomErrMsg string when given response body with single error', () => {
|
test('getCustomErrMsg string when given response body with single error', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const bodyErrors = joinFlowInstance.getBodyErrors(null, responseBodySingleErr, {statusCode: 200});
|
const errorsFromResponse =
|
||||||
const customErrMsg = joinFlowInstance.getCustomErrMsg(bodyErrors);
|
joinFlowInstance.getErrorsFromResponse(null, responseBodySingleErr, {statusCode: 200});
|
||||||
expect(customErrMsg).toEqual('registration.problemsAre "recaptcha: Incorrect, please try again."');
|
const customErrMsg = joinFlowInstance.getCustomErrMsg(errorsFromResponse);
|
||||||
|
expect(customErrMsg).toEqual('registration.problemsAre: "recaptcha: Incorrect, please try again."');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getRegistrationSuccess returns true when given response body with single error', () => {
|
test('registrationIsSuccessful returns true when given response body with single error', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const success = joinFlowInstance.getRegistrationSuccess(null, responseBodySuccess, {statusCode: 200});
|
const success = joinFlowInstance.registrationIsSuccessful(null, responseBodySuccess, {statusCode: 200});
|
||||||
expect(success).toEqual(true);
|
expect(success).toEqual(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getRegistrationSuccess returns false when given status code not 200', () => {
|
test('registrationIsSuccessful returns false when given status code not 200', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const success = joinFlowInstance.getRegistrationSuccess(null, responseBodySuccess, {statusCode: 500});
|
const success = joinFlowInstance.registrationIsSuccessful(null, responseBodySuccess, {statusCode: 500});
|
||||||
expect(success).toEqual(false);
|
expect(success).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getRegistrationSuccess returns false when given body with success field false', () => {
|
test('registrationIsSuccessful returns false when given body with success field false', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const success = joinFlowInstance.getRegistrationSuccess(null, responseBodySingleErr, {statusCode: 200});
|
const success = joinFlowInstance.registrationIsSuccessful(null, responseBodySingleErr, {statusCode: 200});
|
||||||
expect(success).toEqual(false);
|
expect(success).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getRegistrationSuccess returns false when given non null err', () => {
|
test('registrationIsSuccessful returns false when given non null err', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
const success = joinFlowInstance.getRegistrationSuccess({}, responseBodySuccess, {statusCode: 200});
|
const success = joinFlowInstance.registrationIsSuccessful({}, responseBodySuccess, {statusCode: 200});
|
||||||
expect(success).toEqual(false);
|
expect(success).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -396,7 +396,7 @@ describe('JoinFlow', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
joinFlowInstance.handleRegistrationResponse(null, responseBodySingleErr, {statusCode: 200});
|
joinFlowInstance.handleRegistrationResponse(null, responseBodySingleErr, {statusCode: 200});
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: 'registration.errorCaptcha'
|
errorMsg: 'registration.errorCaptcha'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -405,8 +405,8 @@ describe('JoinFlow', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
joinFlowInstance.handleRegistrationResponse(null, responseBodyMultipleErrs, {statusCode: 200});
|
joinFlowInstance.handleRegistrationResponse(null, responseBodyMultipleErrs, {statusCode: 200});
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: false,
|
||||||
errorMsg: 'registration.problemsAre "username: This field is required.; ' +
|
errorMsg: 'registration.problemsAre: "username: This field is required.; ' +
|
||||||
'recaptcha: Incorrect, please try again."'
|
'recaptcha: Incorrect, please try again."'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -415,7 +415,7 @@ describe('JoinFlow', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
joinFlowInstance.handleRegistrationResponse({}, responseBodyMultipleErrs, {statusCode: 200});
|
joinFlowInstance.handleRegistrationResponse({}, responseBodyMultipleErrs, {statusCode: 200});
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: true
|
errorAllowsTryAgain: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -423,7 +423,7 @@ describe('JoinFlow', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
joinFlowInstance.handleRegistrationResponse({}, responseBodyMultipleErrs, {statusCode: 400});
|
joinFlowInstance.handleRegistrationResponse({}, responseBodyMultipleErrs, {statusCode: 400});
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: true
|
errorAllowsTryAgain: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -431,8 +431,7 @@ describe('JoinFlow', () => {
|
||||||
const joinFlowInstance = getJoinFlowWrapper().instance();
|
const joinFlowInstance = getJoinFlowWrapper().instance();
|
||||||
joinFlowInstance.handleRegistrationResponse(null, responseBodyMultipleErrs, {statusCode: 500});
|
joinFlowInstance.handleRegistrationResponse(null, responseBodyMultipleErrs, {statusCode: 500});
|
||||||
expect(joinFlowInstance.state.registrationError).toEqual({
|
expect(joinFlowInstance.state.registrationError).toEqual({
|
||||||
canTryAgain: false,
|
errorAllowsTryAgain: true
|
||||||
errorMsg: null
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue