test-esw-ts v0.1.0-M5
ESW-TS
Project overview
- Typescript library clients - /lib/src/clients
- Aas Components - /lib/src/components
- Example App - /example/src
- UI Integration tests - /integration-ui/src/test/scala/csw/aas/js/config
Typescript library clients
This project provide following typescript clients for various TMT services, which can be found at location - /lib/src/clients.
- Admin
- Agent
- Alarm
- Command
- Config
- Event
- Gateway
- Location
- Sequencer
- Sequence Manager
Aas Components in React
- CheckLogin
- RealmRole
- AuthContextProvider
- Login
- Logout
Example App
This app shows how to use typescript clients and Aas Components to create your web app. Refer following files for respective use cases.
- Typescript usage - e.g. example/src/components/config/context/ConfigServiceProvider.tsx
- Aas login/logout usage - e.g. example/src/components/NavComponent.tsx
- Auth Context usage - e.g. example/src/components/ExampleApp.tsx
How to run example app
Step1: Run required backend services
Step2: Build Library
Step3: Run Example App
Step1: Run required backend services
Make sure you have following CSW services up and running:
- Location Service
- AAS Service
- Config Service
Note: Simple way to start all these services is to run csw-services using coursier (aka cs) from csw github repository.
Refer here to learn how to start csw-services.
cs install csw-services:<version | SHA>
csw-services start -c -k -v $SHA_OF_CSWStep2: Build ESW-TS Library
cd {ESW-TS-Repo}/libFetch dependencies
npm clean-installBuild library
npm run buildRun unit tests of library
npm run test:unitRun integration tests of library
npm run test:integrationStep3: Run Example App
Start App -
cd ../example
npm clean-install
npm startOpen App in the browser -
Go to localhost:3000 in Browser
Login with appropriate user as listed below to access functionality of each tab.
| Example app tab | requirement | Login username | Password |
|---|---|---|---|
| Public | -does not requires login | ||
| Secured | -requires login | any user below | any user below |
| Config App(List) | -does not requires login | ||
| Config App(Get) | -does not requires login | ||
| Config App(Create) | -requires login with role config-admin | config-admin1 | config-admin1 |
| Admin App | -requires login with example-admin-role | dummy-user | dummy-user |
| User App | -requires login with person-role | dummy-user | dummy-user |
Running Integration-UI test
This module includes E2E test which demonstrate following flow which is all automated:
- Start Location, Config and AAS CSW services
- Build and Install
lib - Build and Start
configexample - Create configuration file
To run this test, execute sbt test or sbt integration-ui/test command
Generate typescript documentation
cd lib && npm run build && npm run doc
Generate paradox documentation
To generate paradox documentation for the ESW-TS, run the following command
sbt clean makeSite openSite
Above command will generate and open the paradox site in browser.
Push paradox documentation
To push documentation on github pages, follow the steps:
Open sbt shell with command.
sbt -Dprod.docs=trueClean and generate the site locally.
sbt:esw-ts> clean; makeSitePush the changes to github pages.
sbt:esw-ts> ghpagesPushSite
It will ask for github credential. It takes few minutes to reflect on the github pages.