Skip to content

Commit

Permalink
Merge pull request #949 from grasdk/feature/localtest
Browse files Browse the repository at this point in the history
Feature/localtest
  • Loading branch information
bpatrik authored Oct 27, 2024
2 parents 679b1f7 + 8dad582 commit c5c7df0
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,5 @@ test.*
.DS_Store
/coverage/
.nyc_output/
.vscode*
.vscode*
!test/setup-local.js # Excludes setup.js from the ignore rule
5 changes: 5 additions & 0 deletions .mocharc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
timeout: 20000, // Set timeout to 20 seconds (good for slow test setups)
require: 'test/setup-local.js',
recursive: true, // Run tests in subdirectories
};
31 changes: 31 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,34 @@ Client side:
15. Setting `content` BehaviorSubject (rxjs) with the `ContentWrapperWithError` from the server.
16. Rendering gallery: UI is data binded to the `galleryService.content` [gallery.component.html]

## Running the tests locally
You can run tests in various ways. If you use VS Code, the built-in test explorer is a good way to visualize and run the tests. You can also run tests from the command line.

- Run all tests:

`npx mocha`
- Run all tests in parallel and report with very verbose output (to debug tests that don't run):

`npx mocha --reporter spec --parallel`
- Run a specific test (here the SettingsRouter in the backend):

`npx mocha ./test/backend/integration/routers/admin/SettingsRouter.js`

### MySQL / MariaDB tests
The MySQL / MariaDB tests needs a separate database to be running during the test. If you have docker, you can start one with the required test-settings, using the command below:

`docker run --name pigallery_test -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=pigallery_test -e MYSQL_USER=user -e MYSQL_PASSWORD=password -p3306:3306 -d mariadb:10.3 --log-bin --binlog-format=MIXED`

Start this betfore running the tests in text explorer or the command line, if you want to include the MySQL tests.

Once you're finished with the testing, you can shut down the container again:

`docker stop pigallery_test`

or you can shut it down AND remove it:

`docker stop pigallery_test && docker rm pigallery_test`




6 changes: 6 additions & 0 deletions test/setup-local.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
process.env.MYSQL_HOST = 'localhost';
process.env.MYSQL_USERNAME = 'root';
process.env.MYSQL_PASSWORD = 'password';
process.env.MYSQL_PORT = '3306';
process.env.PORT = '35000';
process.env.CI = 'true';

0 comments on commit c5c7df0

Please sign in to comment.