This monorepo houses custom frontend modules used in the AMPATH O3 frontend. These include:
Check out the developer documentation here.
Install dependencies by running:
yarn
To run a local dev server for a specific frontend module, run:
yarn start --sources 'packages/esm-<insert-package-name>-app'
Where the argument to --sources
is the name of the frontend module you want to run. It will run a dev server proxied to a hosted instance of the AMPATH backend by default.
You could provide yarn start
with as many sources
arguments as you require. For example, to run the patient registration and patient search modules only, use:
yarn start --sources 'packages/esm-patient-search-app' --sources 'packages/esm-patient-registration-app'
If you notice that your local version of the application is not working or that there's a mismatch between what you see locally versus what's in the reference application, you likely have outdated versions of core libraries. To update core libraries, run the following commands:
# Upgrade core libraries
yarn up openmrs @openmrs/esm-framework
# Reset version specifiers to `next`. Don't commit actual version numbers.
git checkout package.json
# Run `yarn` to recreate the lockfile
yarn
Please read our contributing guide.
To run tests for all packages, run:
yarn turbo test
To run tests in watch
mode, run:
yarn turbo test:watch
To run tests for a specific package, pass the package name to the --filter
flag. For example, to run tests for esm-patient-conditions-app
, run:
yarn turbo test --filter="esm-patient-conditions-app"
To run a specific test file, run:
yarn turbo test -- basic-search
The above command will only run tests in the file or files that match the provided string.
You can also run the matching tests from above in watch mode by running:
yarn turbo test:watch --basic-search
To generate a coverage
report, run:
yarn turbo coverage
By default, turbo
will cache test runs. This means that re-running tests wihout changing any of the related files will return the cached logs from the last run. To bypass the cache, run tests with the force
flag, as follows:
yarn turbo test --force
To run unit tests, use:
yarn test
To run E2E tests, make sure the dev server is running by using:
yarn start --sources 'packages/esm-*-app/'
Then, in a separate terminal, run:
yarn test-e2e --headed
Please read our e2e test guide for more information about E2E testing.
To upgrade your Playwright version, ensure that you update both the package.json file and the e2e/support/bamboo/playwright.Dockerfile.
For documentation about our design patterns, please visit our design system documentation website.
The main
branch of this repo is deployed in a demo environment.
This module is designed to be driven by configuration files. Each module has a config-schema.ts
file at its root. This file contains the schema for the configuration file that the module expects. The distro-level configuration file is located here. To learn more about configuration, read the Distro config and the Configuration guides in the official docs.