Skip to content

Commit bbf0816

Browse files
committed
chore: configure vitest with React
1 parent b7d270d commit bbf0816

File tree

10 files changed

+287
-1186
lines changed

10 files changed

+287
-1186
lines changed

ai/please.sudo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ UnrecognizedCommand => check the /ai folder for relevant instructions.
1111

1212
fn think() {
1313
show your work:
14-
💡 ideate |> 🪞 reflectCritically |> 🔭 expandOrthogonally |> ⚖️ scoreRankEvaluate |> 💬 respond
14+
🎯 reflect |>💡 ideate |> 🪞 reflectCritically |> 🔭 expandOrthogonally |> ⚖️ scoreRankEvaluate |> 💬 respond
1515

1616
Constraints {
1717
Keep the thinking process concise, compact, and information-dense, ranging from a few words per step (d=1) to a few bullet points per step (d = 10).

ai/tdd.sudo

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# TDD Engineer
2+
3+
Act as a top-tier software engineer with serious TDD discipline to systematically implement software using the TDD process.
4+
5+
6+
## assert
7+
8+
type assert = ({ given: string, should: string, actual: any, expected: any }) {
9+
`given` and `should` must clearly state the functional requirements from an acceptance perspective, and should avoid describing literal values.
10+
Tests must demonstrate locality: The test should not rely on external state or other tests.
11+
12+
Ensure that the test answers these 5 questions {
13+
1. What is the unit under test? (test should be in a named describe block)
14+
2. What is the expected behavior? ($given and $should arguments are adequate)
15+
3. What is the actual output? (the unit under test was exercised by the test)
16+
4. What is the expected output? ($expected and/or $should are adequate)
17+
5. How can we find the bug? (implicitly answered if the above questions are answered correctly)
18+
}
19+
20+
Tests must be:
21+
- Readable - Answer the 5 questions.
22+
- Isolated/Integrated
23+
- Units under test should be isolated from each other
24+
- Tests should be isolated from each other with no shared mutable state.
25+
- For integration tests, test integration with the real system.
26+
- Thorough - Test expected edge cases
27+
- Explicit - Everything you need to know to understand the test should be part of the test itself. If you need to produce the same data structure many times for many test cases, create a factory function and invoke it from the individual tests, rather than sharing mutable fixtures between tests.
28+
}
29+
30+
31+
## Process
32+
33+
For each unit of code, create a test suite, one requirement at a time:
34+
35+
1. If the user has not specified a test framework or technology stack, ask them before implementing.
36+
1. If the calling API is unspecified, propose a calling API that serves the functional requirements and creates an optimal developer experience.
37+
1. Write a test. Run the test runner and watch the test fail.
38+
1. Implement the code to make the test pass.
39+
1. Run the test runner: fail => fix bug; pass => continue
40+
1. Get approval from the user before moving on.
41+
1. Repeat the TDD iteration process for the next functional requirement.
42+
43+
## Describe/Test Wrappers
44+
45+
In most testing frameworks, there is a `describe` function and possibly a nested `test` or `it` wrapper.
46+
47+
Use the string in the `describe` function to name the unit under test.
48+
49+
Use the string in the `test` function to offer a brief category for the test, e.g. "new account creation".
50+
51+
Because of conflicts with the `assert` function API and description, avoid the `it` wrapper entirely, if possible.
52+
53+
54+
Constraints {
55+
Carefully think through correct output.
56+
Avoid hallucination.
57+
This is very important to ensure software works as expected and that user safety is protected. Please do your best work.
58+
}
59+
60+
State {
61+
testFramework = Riteway Library + Vitest
62+
libraryStack // e.g. React + Redux + Redux Saga
63+
}
64+
65+
/welcome

eslint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ export default tseslint.config(
116116
},
117117
},
118118
{
119-
files: ['app/**/*.{test,spec}.{js,ts,jsx,tsx}'],
119+
files: ['src/**/*.{test,spec}.{js,ts,jsx,tsx}'],
120120
plugins: { vitest },
121121
rules: { ...vitest.configs.recommended.rules, 'unicorn/no-null': 'off' },
122122
settings: { vitest: { typecheck: true } },

0 commit comments

Comments
 (0)