-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ 98ab188 🚀
- Loading branch information
1 parent
a384579
commit 95a5d7a
Showing
24 changed files
with
1,978 additions
and
21 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions
1
...ata/fl7Q3KJzxpzbAUQhu89_q/adr/20231212-subcutaneous-tests-should-target-webapi-layer.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"pageProps":{"projectName":"SSW Clean Architecture Template","currentAdr":{"slug":"20231212-subcutaneous-tests-should-target-webapi-layer","package":null,"title":"Subcutaneous Tests Should Target WebApi Layer","status":"accepted","supersededBy":null,"tags":["tests"],"deciders":["Daniel M","William L","Matt W"],"body":{"enhancedMdx":"\nTechnical Story: https://github.com/SSWConsulting/SSW.CleanArchitecture/issues/201\n\n## Context and Problem Statement\n\nPreviously, the Subcutaneous tests were targeting the Application Layer. This was ok, but skipped the WebApi layer, which is the layer that the end user will be interacting with. This means that the tests were not testing the full stack, and we were not getting the full benefit of the Subcutaneous tests.\n\n## Decision Drivers\n\n- Subcutaneous tests should test as much of the stack as possible\n- Some element of contract testing is required\n\n## Considered Options\n\n1. Leave the Subcutaneous tests targeting the Application Layer\n2. Change Subcutaneous tests to target the WebApi Layer\n\n## Decision Outcome\n\nChosen option: \"Option 2: Change Subcutaneous tests to target the WebApi Layer\", because the subcutaneous tests should be testing as much of the stack as possible. There is no downside to this option.\n\n## Pros and Cons of the Options\n\n### Option 1: Leave the Subcutaneous tests targeting the Application Layer\n\n- ✅ Logic and Internal Infrastructure tested\n- ❌ Serialization not tested\n- ❌ Contract testing not tested\n- ❌ Web Authentication/Authorization not tested\n\n### Option 2: Change Subcutaneous tests to target the WebApi Layer\n\nIn this option specifically we've decided hardcode the API routes as opposed to use a generated client. This provides us with a simple form of contract testing (routes only) and gives us some protection against breaking existing clients.\n\n- ✅ Logic and Internal Infrastructure tested\n- ✅ Serialization tested\n- ✅ Web Authentication/Authorization tested\n- ⚠️ Some contract testing (routes only)\n"},"creationDate":"2023-12-12T07:26:48.000Z","lastEditDate":"2023-12-12T07:26:48.000Z","lastEditAuthor":"Daniel Mackay [SSW]","publicationDate":"2023-12-12T12:59:59.000Z","file":{"relativePath":"docs/adr/20231212-subcutaneous-tests-should-target-webapi-layer.md","absolutePath":"/home/runner/work/SSW.CleanArchitecture/SSW.CleanArchitecture/docs/adr/20231212-subcutaneous-tests-should-target-webapi-layer.md"},"repository":{"provider":"github","viewUrl":"https://github.com/SSWConsulting/SSW.CleanArchitecture/blob/master/docs/adr/20231212-subcutaneous-tests-should-target-webapi-layer.md"}},"l4bVersion":"1.0.1"},"__N_SSG":true} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"pageProps":{"projectName":"SSW Clean Architecture Template","adrs":[{"slug":"20230612-use-log4brains-to-manage-the-adrs","package":null,"title":"Use Log4brains to manage the ADRs","status":"accepted","creationDate":"2023-06-12T04:43:02.000Z","publicationDate":"2023-06-11T13:59:59.000Z"},{"slug":"20230612-use-markdown-architectural-decision-records","package":null,"title":"Use Markdown Architectural Decision Records","status":"accepted","creationDate":"2023-06-12T04:43:02.000Z","publicationDate":"2023-06-11T13:59:59.000Z"},{"slug":"20230612-use-ef-core-and-specifications-in-commands-and-queries","package":null,"title":"Use EF Core and Specifications in Commands and Queries","status":"accepted","creationDate":"2023-06-14T07:18:11.000Z","publicationDate":null},{"slug":"20230604-use-the-factory-pattern-to-create-aggregates","package":null,"title":"Use the Factory Pattern to Create Aggregates","status":"accepted","creationDate":"2023-06-15T01:49:58.000Z","publicationDate":null},{"slug":"20230810-move-specifications-to-the-domain","package":null,"title":"Move Specifications to the Domain Layer","status":"accepted","creationDate":"2023-08-11T06:58:41.000Z","publicationDate":"2023-08-11T13:59:59.000Z"},{"slug":"20231212-subcutaneous-tests-should-target-webapi-layer","package":null,"title":"Subcutaneous Tests Should Target WebApi Layer","status":"accepted","creationDate":"2023-12-12T07:26:48.000Z","publicationDate":"2023-12-12T12:59:59.000Z"}],"markdown":"<!-- This file is the homepage of your Log4brains knowledge base. You are free to edit it as you want -->\n\n# Architecture knowledge base\n\nWelcome 👋 to the architecture knowledge base of SSW Clean Architecture Template.\nYou will find here all the Architecture Decision Records (ADR) of the project.\n\n## Definition and purpose\n\n> An Architectural Decision (AD) is a software design choice that addresses a functional or non-functional requirement that is architecturally significant.\n> An Architectural Decision Record (ADR) captures a single AD, such as often done when writing personal notes or meeting minutes; the collection of ADRs created and maintained in a project constitutes its decision log.\n\nAn ADR is immutable: only its status can change (i.e., become deprecated or superseded). That way, you can become familiar with the whole project history just by reading its decision log in chronological order.\nMoreover, maintaining this documentation aims at:\n\n- 🚀 Improving and speeding up the onboarding of a new team member\n- 🔠Avoiding blind acceptance/reversal of a past decision (cf [Michael Nygard's famous article on ADRs](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions.html))\n- 🤝 Formalizing the decision process of the team\n\n## Usage\n\nThis website is automatically updated after a change on the `main` branch of the project's Git repository.\nIn fact, the developers manage this documentation directly with markdown files located next to their code, so it is more convenient for them to keep it up-to-date.\nYou can browse the ADRs by using the left menu or the search bar.\n\nThe typical workflow of an ADR is the following:\n\n![ADR workflow](/l4b-static/adr-workflow.png)\n\nThe decision process is entirely collaborative and backed by pull requests.\n\n## More information\n\n- [Log4brains documentation](https://github.com/thomvaill/log4brains/tree/master#readme)\n- [What is an ADR and why should you use them](https://github.com/thomvaill/log4brains/tree/master#-what-is-an-adr-and-why-should-you-use-them)\n- [ADR GitHub organization](https://adr.github.io/)\n","l4bVersion":"1.0.1"},"__N_SSG":true} |
2 changes: 1 addition & 1 deletion
2
...82e4a432ad4da6771.dacbd9c8b3c5133a0e4e.js → ...82e4a432ad4da6771.93282b53f42b4a4de1fa.js
Large diffs are not rendered by default.
Oops, something went wrong.
2 changes: 1 addition & 1 deletion
2
...c/-974N5ngdH6tuTMwNSyJX/_buildManifest.js → ...c/fl7Q3KJzxpzbAUQhu89_q/_buildManifest.js
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
File renamed without changes.
4 changes: 2 additions & 2 deletions
4
adr/20230604-use-the-factory-pattern-to-create-aggregates/index.html
Large diffs are not rendered by default.
Oops, something went wrong.
4 changes: 2 additions & 2 deletions
4
adr/20230612-use-ef-core-and-specifications-in-commands-and-queries/index.html
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
4 changes: 2 additions & 2 deletions
4
adr/20230612-use-markdown-architectural-decision-records/index.html
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.