Skip to content

Commit cbc85a9

Browse files
committed
Fix Cypress runner
Add `cypress:run` to run all tests automatically.
1 parent 7a2849e commit cbc85a9

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

node_mongo/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ jest app_api/models
6565

6666
The end-to-end tests use Cypress. They need a running app to test against.
6767

68+
```bash
69+
docker compose up -d test_server
70+
npm run cypress:run
71+
```
72+
73+
Or, run the tests interactively.
74+
6875
```bash
6976
docker compose up -d test_server
7077
npm run cypress:open
Binary file not shown.

node_mongo/cypress/support/commands.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
2626

2727
Cypress.Commands.add('resetDb', () => {
28-
cy.exec('echo \'db.reviews.deleteMany({}); db.books.deleteMany({}); db.users.deleteMany({})\' | docker-compose exec -T mongo mongosh node_mongo_book_reviews_test')
28+
cy.exec('echo \'db.reviews.deleteMany({}); db.books.deleteMany({}); db.users.deleteMany({})\' | docker compose exec -T mongo mongosh node_mongo_book_reviews_test')
2929
})
3030

3131
Cypress.Commands.add('createUser', (name, email, password) => {
3232
cy.request('POST', Cypress.config('registerUrl'), { name, email, password })
3333
})
3434

3535
Cypress.Commands.add('populateBook', book => {
36-
cy.exec(`echo 'db.books.insertOne(${JSON.stringify(book)})' | docker-compose exec -T mongo mongosh node_mongo_book_reviews_test`)
36+
cy.exec(`echo 'db.books.insertOne(${JSON.stringify(book)})' | docker compose exec -T mongo mongosh node_mongo_book_reviews_test`)
3737
})
3838

3939
Cypress.Commands.add('populateAllBooks', () => {
@@ -51,7 +51,7 @@ Cypress.Commands.add('populateAllBooks', () => {
5151

5252
Cypress.Commands.add('populateUser', user => {
5353
const { password, ... userData } = { salt: user.password, hash: user.password, ... user }
54-
cy.exec(`echo 'db.users.insertOne(${JSON.stringify(userData)})' | docker-compose exec -T mongo mongosh node_mongo_book_reviews_test`)
54+
cy.exec(`echo 'db.users.insertOne(${JSON.stringify(userData)})' | docker compose exec -T mongo mongosh node_mongo_book_reviews_test`)
5555
})
5656

5757
Cypress.Commands.add('populateAllUsers', () => {
@@ -65,14 +65,14 @@ Cypress.Commands.add('populateAllUsers', () => {
6565
})
6666

6767
Cypress.Commands.add('grantRole', (email, role) => {
68-
cy.exec(`echo 'db.users.updateOne({email: "${email}"}, {$addToSet: {roles: "${role}"}})' | docker-compose exec -T mongo mongosh node_mongo_book_reviews_test`)
68+
cy.exec(`echo 'db.users.updateOne({email: "${email}"}, {$addToSet: {roles: "${role}"}})' | docker compose exec -T mongo mongosh node_mongo_book_reviews_test`)
6969
})
7070

7171
Cypress.Commands.add('populateReview', review => {
7272
const { bookName, reviewerEmail, body, start, stop } = review
7373
// I have to use a heredoc because some review bodies contain "'" characters.
7474
cy.exec(`
75-
docker-compose exec -T mongo mongosh node_mongo_book_reviews_test << EOF
75+
docker compose exec -T mongo mongosh node_mongo_book_reviews_test << EOF
7676
db.reviews.insertOne({
7777
book: db.books.findOne({name: "${bookName}"})._id,
7878
reviewer: db.users.findOne({email: "${reviewerEmail}"})._id,

node_mongo/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"dev": "nodemon ./bin/www",
88
"test": "jest --watchAll",
99
"start": "node ./bin/www",
10-
"cypress:open": "cypress open"
10+
"cypress:open": "cypress open",
11+
"cypress:run": "cypress run"
1112
},
1213
"repository": {
1314
"type": "git",

0 commit comments

Comments
 (0)