2.0.0 • Published 5 months ago

sanarflix-web v2.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

sanarflix-web

This is the frontend application for SanarFlix. The main technologies we use are TypeScript, React (alongside with the ecosytem's default libraries like jest and testing-library), Vite, GraphQL, Apollo and styled components.

EnvironmentDeployment StatusURL
devApp Statushttps://sanarflix.alfa.sanar.com.br/aluno
preprodApp Statushttps://sanarflix.beta.sanar.com.br/aluno
prodApp Statushttps://sanarflix.sanar.com.br/aluno

Installation

Use the package manager yarn to install the project dependencies.

yarn install

Observation: you'll need an authentication token to download dependencies inside @sanar organization. Once you have that token, just add it to your .npmrc file as shown below:

//registry.npmjs.org/:_authToken=<whatever-it-is-your-token>

Running

Make sure to set your environment variables correctly. For that, you have to make a copy of the envs-config.example.js file and rename it to envs-config.js in the environments folder.

To have the application up and running on your local environment, just execute the following command:

yarn start

Changes in graphql schema (syncing this client with graphql backend)

Once one changes a schema in the graphql backend (sanarflix-bff, for example), the schema in this application becomes outdated. In order to solve that, it's necessary to execute the following command:

yarn generate

This command will use the url found on codegen.yml and will sync the src/types/definitions.ts files with the current schema found on the backend. The default value is the url of our dev environment, however it's possible change that to the url of one's sanarflix-bff application running in development environment (such as localhost:3000) in order to have correct integration during development time (and potentially fixing tests that might have been affected when the developer changed the query format for that specific service that was modified). It's important to note that the tests might still be breaking because some value was added and it's not being considered by the test mocks

Integration/Unit Tests

We use Jest with Testing Library to write our integration/unit tests and it's a good idea to follow the library's guiding principle to writte our tests as well:

The more your tests resemble the way your software is used, the more confidence they can give you.

To run integration/unit tests, just execute the following command:

yarn test

E2E Tests

We use Cypress to write our tests and it's a good idea to follow the library's guiding principle to writte our tests as well:

The more your tests resemble the way your software is used, the more confidence they can give you.

To run E2E tests, at first go to tests directory:

cd /tests/

On the tests folder you may need to configure the environment to run the tests for the first time:

yarn
yarn cypress install

To execute command in local or staging environment:

yarn test:local  //or
yarn test:stg

To execute tests opening browser:

yarn test

Contributing

General guidelines around how to contribute can be found here.