Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new ADR for BackstopJS #1297

Merged
merged 2 commits into from
Sep 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/adrs/0009-adr-implement-backstopjs-to-improve-qa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Adopting BackstopJS for Enhanced QA in Admin Project

Status: Proposed
Date: August 27th, 2024

### Context
We're looking to integrate BackstopJS, a visual regression testing tool, into our Admin UI project to improve QA and keep our UI consistent. This tool will help catch visual bugs early and make sure our design stays on track. We considered several options: deferring the integration, minimal integration with our current tools, full integration using Docker, and an optional testing setup. The goal is to find a balance between ease of use for developers and thorough testing while making sure the integration fits well with our current CI/CD pipeline.

### Decision
We decided to integrate BackstopJS as an optional part of our workflow. This means developers can run visual regression tests when they think it's needed, using specific Gulp commands. By doing this, we keep the process flexible and minimize friction for those who are new to the tool. We’ll also provide clear documentation and training to help everyone get up to speed. If this approach works well, we might look into making these tests a regular part of our process down the road by integrating into the CI/CD process.


### Consequences
With this decision, we make it easier for developers to start using BackstopJS without introducing a complicated library to them. This should help us catch more visual bugs and keep our UI consistent over time. The downside is that not everyone may run the tests regularly, which could lead to some missed issues. To counter this, documentation will be created to help developers understand how to best use BackstopJS. The initial setup will take some time, but since it matches the tools we already use, it shouldn’t be too much of a hassle. We’re also thinking about integrating BackstopJS into our CI/CD pipeline more fully in the future, so we won’t have to rely on local environments as much.

### Author
@alexjanousekGSA

### Stakeholders

### Next Steps
- Start setting up BackstopJS with Gulp.
- Create documentation and training materials.
- Hold training sessions to introduce developers to BackstopJS.
- Keep an eye on how well the integration is working and get feedback from the team.
- Make adjustments as needed based on what we learn and begin implementing into CI/CD process.
17 changes: 9 additions & 8 deletions docs/adrs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,12 @@ our ADRs in reverse chronological order so we have a convenient index of them.
This is the log of all of our ADRs in reverse chronological order (newest is up
top!).

| ADR | TITLE | CURRENT STATUS | IMPLEMENTED | LAST MODIFIED |
| :---: | :---: | :---: | :---: | :---: |
| [ADR-0006](./0006-use-for-dependency-management.md) | [Use `poetry` for Dependency Management](./0006-use-for-dependency-management.md) | Accepted | Yes | 09/08/2023 |
| [ADR-0005](./0005-agreement-data-model.md) | [Agreement info in data model](./0005-agreement-data-model.md) | Accepted | No | 07/05/2023 |
| [ADR-0004](./0004-designing-pilot-content-visibility.md) | [Designing Pilot Content Visibility](./0004-designing-pilot-content-visibility.md) | Proposed | No | 06/20/2023 |
| [ADR-0003](./0003-implementing-invite-expirations.md) | [Implementing User Invite Expirations](./0003-implementing-invite-expirations.md) | Accepted | No | 09/15/2023 |
| [ADR-0002](./0002-how-to-handle-timezones.md) | [Determine How to Handle Timezones in US Notify](./0002-how-to-handle-timezones.md) | Accepted | Yes | 06/15/2023 |
| [ADR-0001](./0001-establishing-adrs-for-us-notify.md) | [Establishing ADRs for US Notify](./0001-establishing-adrs-for-us-notify.md) | Accepted | Yes | 06/15/2023 |
| ADR | TITLE | CURRENT STATUS | IMPLEMENTED | LAST MODIFIED |
|:------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|:--------------:|:-----------:|:-------------:|
| [ADR-0009](./0009-adr-implement-backstopjs-to-improve-qa.md) | [Use backstopJS for QA Improvement within Admin Project](./0006-use-for-dependency-management.md) | Proposal | No | 08/27/2024 |
| [ADR-0006](./0006-use-for-dependency-management.md) | [Use `poetry` for Dependency Management](./0006-use-for-dependency-management.md) | Accepted | Yes | 09/08/2023 |
| [ADR-0005](./0005-agreement-data-model.md) | [Agreement info in data model](./0005-agreement-data-model.md) | Accepted | No | 07/05/2023 |
| [ADR-0004](./0004-designing-pilot-content-visibility.md) | [Designing Pilot Content Visibility](./0004-designing-pilot-content-visibility.md) | Proposed | No | 06/20/2023 |
| [ADR-0003](./0003-implementing-invite-expirations.md) | [Implementing User Invite Expirations](./0003-implementing-invite-expirations.md) | Accepted | No | 09/15/2023 |
| [ADR-0002](./0002-how-to-handle-timezones.md) | [Determine How to Handle Timezones in US Notify](./0002-how-to-handle-timezones.md) | Accepted | Yes | 06/15/2023 |
| [ADR-0001](./0001-establishing-adrs-for-us-notify.md) | [Establishing ADRs for US Notify](./0001-establishing-adrs-for-us-notify.md) | Accepted | Yes | 06/15/2023 |
Loading