ucsb-cs156-f24 / team01-staff

https://ucsb-cs156-f24.github.io/team01-staff/
0 stars 0 forks source link

STARTER-team01

Instructions: https://ucsb-cs156.github.io/f24/lab/team01.html

TODO: change heading above to your repo name, e.g. # team01-f24-17

TODO: Add a link to the deployed Dokku app for your team here, e.g.

Deployments:

TODO: Fill in this table with correct information.

Table Name Github Id
UCSBDiningCommonsMenuItem
UCSBOrganization
RecommendationRequest
MenuItemReview
HelpRequest
Articles

Remember though, that in spite of these initial assignments, it is still a team project. Please help other team members to finish their work after completing your own.

Versions

Brief overview of starter code

TODO: remove this header and content of this section before submitting. However leave the section # Overview of application and its content intact.

The starter code here starts with a base similar to team01, but with some extra frontend code on top of the of backend CRUD operations that were present in team01.

You can use this code as a basis to:

Overview of application

When complete, this application will have the following features:

Setup before running application

Before running the application for the first time, you need to do the steps documented in docs/oauth.md.

Otherwise, when you try to login for the first time, you will likely see an error such as:

Authorization Error; Error 401: invalid_client; The OAuth client was not found.

Getting Started on localhost

Then, the app should be available on http://localhost:8080

If it doesn't work at first, e.g. you have a blank page on http://localhost:8080, give it a minute and a few page refreshes. Sometimes it takes a moment for everything to settle in.

If you see the following on localhost, make sure that you also have the frontend code running in a separate window.

Failed to connect to the frontend server... On Dokku, be sure that PRODUCTION is defined.  On localhost, open a second terminal window, cd into frontend and type: npm install; npm start";

Getting Started on Dokku

See: /docs/dokku.md

Accessing swagger

To access the swagger API endpoints, use:

Or add /swagger-ui/index.html to the URL of your dokku deployment.

To run React Storybook

For documentation on React Storybook, see:

SQL Database access

On localhost:

On Dokku, follow instructions for Dokku databases:

Testing

Unit Tests

Unit tests are any methods labelled with the @Test annotation that are under the /src/test/java hierarchy, and have file names that end in Test or Tests

Integration Tests

To run only the integration tests, use:

INTEGRATION=true mvn test-compile failsafe:integration-test

To run only the integration tests and see the tests run as you run them, use:

INTEGRATION=true HEADLESS=false mvn test-compile failsafe:integration-test

To run a particular integration test (e.g. only HomePageWebIT.java) use -Dit.test=ClassName, for example:

INTEGRATION=true mvn test-compile failsafe:integration-test -Dit.test=HomePageWebIT

or to see it run live:

INTEGRATION=true HEADLESS=false mvn test-compile failsafe:integration-test -Dit.test=HomePageWebIT

Integration tests are any methods labelled with @Test annotation, that are under the /src/test/java hierarchy, and have names starting with IT (specifically capital I, capital T).

By convention, we are putting Integration tests (the ones that run with Playwright) under the package src/test/java/edu/ucsb/cs156/example/web.

Unless you want a particular integration test to also be run when you type mvn test, do not use the suffixes Test or Tests for the filename.

Note that while mvn test is typically sufficient to run tests, we have found that if you haven't compiled the test code yet, running mvn failsafe:integration-test may not actually run any of the tests.

Partial pitest runs

This repo has support for partial pitest runs

For example, to run pitest on just one class, use:

mvn pitest:mutationCoverage -DtargetClasses=edu.ucsb.cs156.example.controllers.RestaurantsController

To run pitest on just one package, use:

mvn pitest:mutationCoverage -DtargetClasses=edu.ucsb.cs156.example.controllers.\*

To run full mutation test coverage, as usual, use:

mvn pitest:mutationCoverage