Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test(e2e): remove distinction between basic and full env #2128

Merged
merged 1 commit into from
Jun 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
"npm": "~6.4.0"
},
"scripts": {
"test-backend": "env-cmd -f tests/.test-full-env jest --coverage --maxWorkers=4",
"test-backend:watch": "env-cmd -f tests/.test-full-env jest --watch",
"test-backend": "env-cmd -f tests/.test-env jest --coverage --maxWorkers=4",
"test-backend:watch": "env-cmd -f tests/.test-env jest --watch",
"test-frontend": "jest --config=tests/unit/frontend/jest.config.js",
"build": "npm run build-backend && npm run build-frontend",
"build-backend": "tsc -p tsconfig.build.json",
Expand All @@ -28,15 +28,12 @@
"dev": "docker-compose up --build",
"docker-dev": "npm run build-frontend-dev:watch & ts-node-dev --respawn --transpile-only --inspect=0.0.0.0 --exit-child -- src/app/server.ts",
"test": "npm run test-backend && npm run test-frontend",
"test-e2e-build": "npm run build-backend && npm run build-frontend-dev",
"test-run": "concurrently --success last --kill-others \"mockpass\" \"maildev\" \"node dist/backend/app/server.js\" \"node ./tests/mock-webhook-server.js\"",
"testcafe-full-env": "testcafe --skip-js-errors -c 3 chrome:headless ./tests/end-to-end --test-meta full-env=true --app \"npm run test-run\" --app-init-delay 10000",
"testcafe-basic-env": "testcafe --skip-js-errors -c 3 chrome:headless ./tests/end-to-end --test-meta basic-env=true --app \"npm run test-run\" --app-init-delay 10000",
"download-binary": "node tests/end-to-end/helpers/get-mongo-binary.js",
"test-e2e-full": "env-cmd -f tests/.test-full-env --use-shell \"npm run download-binary && npm run testcafe-full-env\"",
"test-e2e-basic": "env-cmd -f tests/.test-basic-env --use-shell \"npm run download-binary && npm run testcafe-basic-env\"",
"test-e2e": "npm run test-e2e-build && npm run test-e2e-full && npm run test-e2e-basic",
"test-e2e-ci": "npm run test-e2e-full && npm run test-e2e-basic",
"test-e2e": "npm run test-e2e-build && npm run test-e2e-ci",
"test-e2e-build": "npm run build-backend && npm run build-frontend-dev",
"test-e2e-ci": "env-cmd -f tests/.test-env --use-shell \"npm run download-binary && npm run testcafe-command\"",
"testcafe-command": "testcafe --skip-js-errors -c 3 chrome:headless ./tests/end-to-end --app \"npm run test-e2e-server\" --app-init-delay 10000",
"test-e2e-server": "concurrently --success last --kill-others \"mockpass\" \"maildev\" \"node dist/backend/app/server.js\" \"node ./tests/mock-webhook-server.js\"",
"lint-code": "eslint src/ --quiet --fix",
"lint-style": "stylelint '*/**/*.css' --quiet --fix",
"lint-html": "htmlhint && prettier --write './src/public/**/*.html' --ignore-path './dist/**' --loglevel silent",
Expand Down
21 changes: 0 additions & 21 deletions tests/.test-basic-env

This file was deleted.

File renamed without changes.
22 changes: 11 additions & 11 deletions tests/end-to-end/email-submission.e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ fixture('Email mode submissions')
// the form and reach the end page.

// Form with all basic field types
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(allFields)
t.ctx.formData = formData
Expand All @@ -75,7 +75,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form where all basic field types are hidden by logic
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(hiddenFieldsData)
formData.logicData = cloneDeep(hiddenFieldsLogicData)
Expand All @@ -86,7 +86,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form where all fields are optional and no field is answered
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = allFields.map((field) => {
return getBlankVersion(getOptionalVersion(field))
Expand All @@ -98,7 +98,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form with three attachments to test de-duplication of attachment names
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(tripleAttachment)
t.ctx.formData = formData
Expand All @@ -108,7 +108,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form with optional attachment in between mandatory ones
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(tripleAttachment)
// Modify middle attachment field to be optional and unfilled
Expand All @@ -127,7 +127,7 @@ test.meta('basic-env', 'true').before(async (t) => {
)

// Form where submission is prevented using chained logic
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(chainDisabled.fields)
formData.logicData = cloneDeep(chainDisabled.logicData)
Expand All @@ -142,7 +142,7 @@ test.meta('basic-env', 'true').before(async (t) => {
)
})

test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
t.ctx.formData = formData
// cloneDeep in case other tests in future import and modify templateFields
Expand All @@ -159,7 +159,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Basic form with only one field and CP authentication
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions({
authType: 'CP',
status: 'PRIVATE',
Expand All @@ -180,7 +180,7 @@ test.meta('full-env', 'true').before(async (t) => {
})

// Basic form with only one field and SP authentication
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions({
authType: 'SP',
status: 'PRIVATE',
Expand All @@ -201,7 +201,7 @@ test.meta('full-env', 'true').before(async (t) => {
})

// Form with a mix of autofilled and non-autofilled MyInfo fields
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions({
authType: 'MyInfo',
esrvcId: 'Test-eServiceId-Sp',
Expand All @@ -214,7 +214,7 @@ test.meta('full-env', 'true').before(async (t) => {
await verifySubmissionE2e(t, t.ctx.form, t.ctx.formData, authData)
})

test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(verifiableEmailField)
t.ctx.formData = formData
Expand Down
16 changes: 8 additions & 8 deletions tests/end-to-end/encrypt-submission.e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ fixture('Storage mode submissions')
})

// Form with all field types available in storage mode
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(allFieldsEncrypt)
t.ctx.formData = formData
Expand All @@ -75,7 +75,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form where all basic field types are hidden by logic
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(hiddenFieldsDataEncrypt)
formData.logicData = cloneDeep(hiddenFieldsLogicDataEncrypt)
Expand All @@ -86,7 +86,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form where all fields are optional and no field is answered
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = allFieldsEncrypt.map((field) => {
return getBlankVersion(getOptionalVersion(field))
Expand All @@ -98,7 +98,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Form where submission is prevented using chained logic
test.meta('basic-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(chainDisabled.fields)
formData.logicData = cloneDeep(chainDisabled.logicData)
Expand All @@ -114,7 +114,7 @@ test.meta('basic-env', 'true').before(async (t) => {
})

// Basic form with only one field and SP authentication
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions({
authType: 'SP',
status: 'PRIVATE',
Expand All @@ -135,7 +135,7 @@ test.meta('full-env', 'true').before(async (t) => {
})

// Basic form with only one field and CP authentication
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions({
authType: 'CP',
status: 'PRIVATE',
Expand All @@ -156,7 +156,7 @@ test.meta('full-env', 'true').before(async (t) => {
})

// Basic form with verifiable email field
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = cloneDeep(verifiableEmailField)
t.ctx.formData = formData
Expand All @@ -166,7 +166,7 @@ test.meta('full-env', 'true').before(async (t) => {
})

// Basic form with only one field
test.meta('full-env', 'true').before(async (t) => {
test.before(async (t) => {
const formData = await getDefaultFormOptions()
formData.formFields = [
{
Expand Down
35 changes: 16 additions & 19 deletions tests/end-to-end/login.e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,20 @@ fixture('login')
await db.close()
})

test.meta('basic-env', 'true').meta('full-env', 'true')(
'Reject emails that do not have white-listed domains',
async (t) => {
// Enter email
await enterEmail(t, '[email protected]')

// Ensure error message is seen
await t
.expect(signInPage.emailErrorMsg.textContent)
.contains(
'Please log in with your official government or government-linked email address.',
)
},
)
test('Reject emails that do not have white-listed domains', async (t) => {
// Enter email
await enterEmail(t, '[email protected]')

// Ensure error message is seen
await t
.expect(signInPage.emailErrorMsg.textContent)
.contains(
'Please log in with your official government or government-linked email address.',
)
})

test
.meta('basic-env', 'true')

.before(async (t) => {
t.ctx.user = await createUser('[email protected]')
})
Expand All @@ -85,7 +82,7 @@ test
)

test
.meta('basic-env', 'true')

.before((t) => {
t.ctx.email = '[email protected]'
})
Expand All @@ -108,7 +105,7 @@ test
)

test
.meta('basic-env', 'true')

.before(async (t) => {
t.ctx.user = await createUser('[email protected]')
})
Expand Down Expand Up @@ -140,7 +137,7 @@ test
})

test
.meta('basic-env', 'true')

.before(async (t) => {
t.ctx.user = await createUser('[email protected]')
})
Expand Down Expand Up @@ -174,7 +171,7 @@ test
})

test
.meta('basic-env', 'true')

.before(async (t) => {
t.ctx.user = await createUser('[email protected]')
})
Expand Down