Organizing Tests

In step with Joystick's strictly enforced file structure, tests are only recognized in your app if they're located in the /tests folder at the root of your app.

All test files must be named following the pattern <test_file_name>.test.js. Files that do not include a .test.js suffix will be ignored by the test runner.

Tests folder structure

While you don't have to, it's highly recommended that the contents of your /tests folder mirror the structure of the root of your project. So, tests related to a miscellaneous function in /lib should live at /tests/lib. Tests related to page components in your /ui folder should live at /tests/ui/pages.

Consider the following file structure:

/api
-- /books
---- getters.js
/lib
-- slugify_title.js
/ui
-- /pages
---- /books
------ index.js

The /tests folder for this app might look like:

/tests
-- /api
---- /books
------ getters.test.js
-- /lib
---- /slugify_title.test.js
-- /ui
---- /pages
------ /books
-------- index.test.js

Test file contents

Each test file should only contain tests related to the mirrored path in the app. Each test file should be treated as a "suite" of tests (Joystick's testing paradigm does not offer an explicit suite() function or other means for organizing a suite of tests).