| # Flutter Dashboard | |
| For how to use the app, see the [user guide](USER_GUIDE.md) | |
| ## Set up | |
| - Install [Flutter](https://docs.flutter.dev/get-started/install), or use an existing checkout if a Flutter developer | |
| - (Optional) Install [Firebase CLI](https://firebase.google.com/docs/flutter/setup) | |
| ## Running locally | |
| It is possible to run a simulation of the UI locally with fake data: | |
| ```sh | |
| # Launches Chrome | |
| flutter run -d chrome --web-port=8080 --dart-define=FAKE_AUTH=true | |
| # Starts a web server, bring your own browser instance | |
| flutter run -d web-server --web-port=8080 --dart-define=FAKE_AUTH=true | |
| ``` | |
| NOTE: Must run on port 8080[^8080] for authentication to work. | |
| [8080]: Google employees: See [GCP > Client ID for Web App](https://console.cloud.google.com/auth/clients/308150028417-vlj9mqlm3gk1d03fb0efif1fu5nagdtt.apps.googleusercontent.com?e=-13802955&invt=AbvvHw&mods=logs_tg_prod&project=flutter-dashboard). | |
| ## Tests | |
| Most tests can be run locally: | |
| ```sh | |
| flutter test | |
| ``` | |
| ### Updating Goldens | |
| Some tests take and compare UI screenshots which will change over time. For compatibility reasons, only a Linux host is supported. | |
| ```sh | |
| flutter test --update-goldens | |
| ``` | |
| The GitHub workflow that checks this should upload the golden failures as annotations | |
| to review. You can also verify locally with: | |
| ```shell | |
| gh act \ | |
| -b \ # BIND your folder instead of copying - this is how you get failures/ out. | |
| --container-architecture linux/amd64 \ # required for mac | |
| --container-options="--tty" \ | |
| --workflows ".github/workflows/dashboard_tests.yaml" | |
| ``` | |
| To just accept the changes: | |
| ```shell | |
| gh act \ | |
| -b \ # BIND your folder instead of copying - this is how you get updates out. | |
| --env UPDATE_GOLDENS=true \ # Use this to pass --update-goldens. | |
| --container-architecture linux/amd64 \ # required for mac | |
| --container-options="--tty" \ | |
| --workflows ".github/workflows/dashboard_tests.yaml" | |
| ``` |