antigravity-devkit 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -26
- package/package.json +2 -2
- package/template/ARCHITECTURE.md +0 -148
- package/template/README.md +0 -421
- package/template/agents/backend-specialist.md +0 -137
- package/template/agents/database-architect.md +0 -114
- package/template/agents/debugger.md +0 -108
- package/template/agents/devops-engineer.md +0 -125
- package/template/agents/documentation-writer.md +0 -109
- package/template/agents/explorer-agent.md +0 -107
- package/template/agents/frontend-specialist.md +0 -231
- package/template/agents/orchestrator.md +0 -100
- package/template/agents/performance-optimizer.md +0 -109
- package/template/agents/project-planner.md +0 -123
- package/template/agents/security-auditor.md +0 -107
- package/template/agents/test-engineer.md +0 -133
- package/template/rules/GEMINI.md +0 -180
- package/template/scripts/README.md +0 -317
- package/template/scripts/checklist.py +0 -170
- package/template/scripts/lint_runner.py +0 -253
- package/template/scripts/schema_validator.py +0 -277
- package/template/scripts/security_scan.py +0 -354
- package/template/scripts/verify_all.py +0 -243
- package/template/scripts/vitest_runner.py +0 -203
- package/template/scripts/xunit_runner.py +0 -235
- package/template/skills/api-patterns/SKILL.md +0 -116
- package/template/skills/architecture/SKILL.md +0 -98
- package/template/skills/aspnet-patterns/SKILL.md +0 -122
- package/template/skills/azure-aks/SKILL.md +0 -136
- package/template/skills/azure-devops/SKILL.md +0 -123
- package/template/skills/azure-keyvault/SKILL.md +0 -100
- package/template/skills/brainstorming/SKILL.md +0 -96
- package/template/skills/clean-code/SKILL.md +0 -84
- package/template/skills/csharp-patterns/SKILL.md +0 -155
- package/template/skills/documentation-templates/SKILL.md +0 -127
- package/template/skills/frontend-design/SKILL.md +0 -199
- package/template/skills/frontend-design/animation-guide.md +0 -217
- package/template/skills/frontend-design/design-systems.md +0 -230
- package/template/skills/frontend-design/ux-psychology.md +0 -128
- package/template/skills/gitops-patterns/SKILL.md +0 -105
- package/template/skills/grafana-logging/SKILL.md +0 -107
- package/template/skills/intelligent-routing/SKILL.md +0 -75
- package/template/skills/plan-writing/SKILL.md +0 -96
- package/template/skills/sqlserver-design/SKILL.md +0 -97
- package/template/skills/systematic-debugging/SKILL.md +0 -98
- package/template/skills/testing-patterns/SKILL.md +0 -102
- package/template/skills/vitest-testing/SKILL.md +0 -116
- package/template/skills/vue3-patterns/SKILL.md +0 -235
- package/template/skills/vulnerability-scanner/SKILL.md +0 -104
- package/template/skills/xunit-testing/SKILL.md +0 -127
- package/template/workflows/brainstorm.md +0 -69
- package/template/workflows/code.md +0 -82
- package/template/workflows/create.md +0 -79
- package/template/workflows/debug.md +0 -83
- package/template/workflows/deploy.md +0 -101
- package/template/workflows/orchestrate.md +0 -86
- package/template/workflows/plan.md +0 -79
- package/template/workflows/review.md +0 -85
- package/template/workflows/status.md +0 -90
- package/template/workflows/test.md +0 -89
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: plan-writing
|
|
3
|
-
description: Task breakdown and project planning
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Plan Writing
|
|
7
|
-
|
|
8
|
-
> Structure tasks for clear execution.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Plan File Format
|
|
13
|
-
|
|
14
|
-
**Location:** `docs/PLAN-{slug}.md`
|
|
15
|
-
|
|
16
|
-
```markdown
|
|
17
|
-
# PLAN: [Feature Name]
|
|
18
|
-
|
|
19
|
-
## Overview
|
|
20
|
-
Brief description of what we're building.
|
|
21
|
-
|
|
22
|
-
## Requirements
|
|
23
|
-
- [ ] Requirement 1
|
|
24
|
-
- [ ] Requirement 2
|
|
25
|
-
|
|
26
|
-
## Tasks
|
|
27
|
-
|
|
28
|
-
### Phase 1: Backend
|
|
29
|
-
- [ ] Task 1 [@backend-specialist]
|
|
30
|
-
- [ ] Task 2 [@database-architect]
|
|
31
|
-
|
|
32
|
-
### Phase 2: Frontend
|
|
33
|
-
- [ ] Task 3 [@frontend-specialist]
|
|
34
|
-
|
|
35
|
-
### Phase 3: Testing
|
|
36
|
-
- [ ] Task 4 [@test-engineer]
|
|
37
|
-
|
|
38
|
-
## Verification
|
|
39
|
-
- [ ] Run checklist.py
|
|
40
|
-
- [ ] Manual testing
|
|
41
|
-
- [ ] Code review
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Task Breakdown Rules
|
|
47
|
-
|
|
48
|
-
| Rule | Description |
|
|
49
|
-
|------|-------------|
|
|
50
|
-
| Specific | Clear deliverable |
|
|
51
|
-
| Atomic | Single responsibility |
|
|
52
|
-
| Assigned | Agent specified |
|
|
53
|
-
| Ordered | Dependencies clear |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Naming Convention
|
|
58
|
-
|
|
59
|
-
| Request | Slug |
|
|
60
|
-
|---------|------|
|
|
61
|
-
| E-commerce cart | ecommerce-cart |
|
|
62
|
-
| User authentication | user-auth |
|
|
63
|
-
| Dashboard analytics | dashboard-analytics |
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Task Sizing
|
|
68
|
-
|
|
69
|
-
| Size | Description | Time |
|
|
70
|
-
|------|-------------|------|
|
|
71
|
-
| S | Single file change | < 30 min |
|
|
72
|
-
| M | Few files, one domain | 1-2 hours |
|
|
73
|
-
| L | Multiple domains | 2-4 hours |
|
|
74
|
-
| XL | Break into sub-tasks | - |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Dependencies
|
|
79
|
-
|
|
80
|
-
```markdown
|
|
81
|
-
## Tasks
|
|
82
|
-
- [ ] 1. Create database schema [@database-architect]
|
|
83
|
-
- [ ] 2. Create API endpoints [@backend-specialist] (depends: 1)
|
|
84
|
-
- [ ] 3. Create UI components [@frontend-specialist] (depends: 2)
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## DO / DON'T
|
|
90
|
-
|
|
91
|
-
| ✅ Do | ❌ Don't |
|
|
92
|
-
|-------|---------|
|
|
93
|
-
| Assign agents | Leave unassigned |
|
|
94
|
-
| Order by dependency | Random order |
|
|
95
|
-
| Include verification | Skip testing tasks |
|
|
96
|
-
| Break large tasks | Massive single tasks |
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sqlserver-design
|
|
3
|
-
description: SQL Server schema design and query optimization
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# SQL Server Design
|
|
7
|
-
|
|
8
|
-
> Efficient schema design and query optimization.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Naming Conventions
|
|
13
|
-
|
|
14
|
-
| Element | Convention | Example |
|
|
15
|
-
|---------|------------|---------|
|
|
16
|
-
| Table | PascalCase, plural | Users, Orders |
|
|
17
|
-
| Column | PascalCase | FirstName |
|
|
18
|
-
| PK | Id | Id |
|
|
19
|
-
| FK | {Table}Id | UserId |
|
|
20
|
-
| Index | IX_{Table}_{Column} | IX_Users_Email |
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Standard Columns
|
|
25
|
-
|
|
26
|
-
```sql
|
|
27
|
-
CREATE TABLE Users (
|
|
28
|
-
Id INT IDENTITY(1,1) PRIMARY KEY,
|
|
29
|
-
-- Business columns
|
|
30
|
-
Email NVARCHAR(255) NOT NULL,
|
|
31
|
-
Name NVARCHAR(100) NOT NULL,
|
|
32
|
-
-- Audit columns
|
|
33
|
-
CreatedAt DATETIME2 DEFAULT GETUTCDATE(),
|
|
34
|
-
UpdatedAt DATETIME2 NULL,
|
|
35
|
-
IsDeleted BIT DEFAULT 0
|
|
36
|
-
);
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Relationships
|
|
42
|
-
|
|
43
|
-
```sql
|
|
44
|
-
-- One-to-Many
|
|
45
|
-
ALTER TABLE Orders
|
|
46
|
-
ADD CONSTRAINT FK_Orders_Users
|
|
47
|
-
FOREIGN KEY (UserId) REFERENCES Users(Id);
|
|
48
|
-
|
|
49
|
-
-- Many-to-Many
|
|
50
|
-
CREATE TABLE UserRoles (
|
|
51
|
-
UserId INT,
|
|
52
|
-
RoleId INT,
|
|
53
|
-
PRIMARY KEY (UserId, RoleId)
|
|
54
|
-
);
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Indexing
|
|
60
|
-
|
|
61
|
-
| Scenario | Index Type |
|
|
62
|
-
|----------|------------|
|
|
63
|
-
| Primary key | Clustered (auto) |
|
|
64
|
-
| Foreign key | Non-clustered |
|
|
65
|
-
| Search column | Non-clustered |
|
|
66
|
-
| Composite search | Composite |
|
|
67
|
-
|
|
68
|
-
```sql
|
|
69
|
-
CREATE INDEX IX_Users_Email ON Users(Email);
|
|
70
|
-
CREATE INDEX IX_Orders_UserId ON Orders(UserId);
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Query Patterns
|
|
76
|
-
|
|
77
|
-
```sql
|
|
78
|
-
-- Parameterized (safe)
|
|
79
|
-
SELECT * FROM Users WHERE Email = @Email
|
|
80
|
-
|
|
81
|
-
-- Pagination
|
|
82
|
-
SELECT * FROM Users
|
|
83
|
-
ORDER BY CreatedAt DESC
|
|
84
|
-
OFFSET @Skip ROWS
|
|
85
|
-
FETCH NEXT @Take ROWS ONLY
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## DO / DON'T
|
|
91
|
-
|
|
92
|
-
| ✅ Do | ❌ Don't |
|
|
93
|
-
|-------|---------|
|
|
94
|
-
| Parameterized queries | String concatenation |
|
|
95
|
-
| Index foreign keys | Skip FK indexes |
|
|
96
|
-
| UTC timestamps | Local time |
|
|
97
|
-
| Soft delete | Hard delete (usually) |
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: systematic-debugging
|
|
3
|
-
description: Root cause analysis and debugging methodology
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Systematic Debugging
|
|
7
|
-
|
|
8
|
-
> Find root causes, not just symptoms.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Debugging Flow
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
1. REPRODUCE → Can you trigger the bug?
|
|
16
|
-
2. ISOLATE → Where exactly does it fail?
|
|
17
|
-
3. IDENTIFY → What is the root cause?
|
|
18
|
-
4. FIX → Minimal change to solve it
|
|
19
|
-
5. VERIFY → Does it work? Any regressions?
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Questions to Ask
|
|
25
|
-
|
|
26
|
-
### Reproduce
|
|
27
|
-
- What are the exact steps?
|
|
28
|
-
- What's expected vs actual?
|
|
29
|
-
- Is it consistent or intermittent?
|
|
30
|
-
|
|
31
|
-
### Isolate
|
|
32
|
-
- Which file/function fails?
|
|
33
|
-
- What changed recently?
|
|
34
|
-
- What are the inputs?
|
|
35
|
-
|
|
36
|
-
### Identify
|
|
37
|
-
- Is this the root cause or symptom?
|
|
38
|
-
- Why does this happen?
|
|
39
|
-
- Are there similar issues?
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Error Pattern Analysis
|
|
44
|
-
|
|
45
|
-
| Symptom | Check |
|
|
46
|
-
|---------|-------|
|
|
47
|
-
| 500 error | Logs, exception details |
|
|
48
|
-
| 404 error | Routes, URLs |
|
|
49
|
-
| Null reference | Data flow, null checks |
|
|
50
|
-
| Type error | Types, casting |
|
|
51
|
-
| Works locally | Environment config |
|
|
52
|
-
| Intermittent | Race conditions, timing |
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Logging Strategy
|
|
57
|
-
|
|
58
|
-
```csharp
|
|
59
|
-
// C# - structured logging
|
|
60
|
-
_logger.LogError(ex, "Failed to process order {OrderId}", orderId);
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
// TypeScript
|
|
65
|
-
console.error('Failed to fetch user:', { userId, error });
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Fix Principles
|
|
71
|
-
|
|
72
|
-
| Principle | Description |
|
|
73
|
-
|-----------|-------------|
|
|
74
|
-
| Minimal | Smallest change that works |
|
|
75
|
-
| Focused | Only fix the bug |
|
|
76
|
-
| Tested | Add regression test |
|
|
77
|
-
| Documented | Comment if complex |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Post-Fix Checklist
|
|
82
|
-
|
|
83
|
-
- [ ] Root cause confirmed
|
|
84
|
-
- [ ] Minimal fix applied
|
|
85
|
-
- [ ] Regression test added
|
|
86
|
-
- [ ] No side effects
|
|
87
|
-
- [ ] Documentation updated
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## DO / DON'T
|
|
92
|
-
|
|
93
|
-
| ✅ Do | ❌ Don't |
|
|
94
|
-
|-------|---------|
|
|
95
|
-
| Find root cause | Patch symptoms |
|
|
96
|
-
| Minimal changes | Multiple fixes |
|
|
97
|
-
| Add tests | Skip verification |
|
|
98
|
-
| Check side effects | Assume it works |
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: testing-patterns
|
|
3
|
-
description: Test strategies and patterns
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Testing Patterns
|
|
7
|
-
|
|
8
|
-
> Test strategies for full-stack applications.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Test Pyramid
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
/\
|
|
16
|
-
/E2E\ Few, slow, critical paths
|
|
17
|
-
/------\
|
|
18
|
-
/ Integ- \ Some, key integrations
|
|
19
|
-
/--ration--\
|
|
20
|
-
/ Unit \ Many, fast, isolated
|
|
21
|
-
/--------------\
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
| Type | Speed | Scope |
|
|
25
|
-
|------|-------|-------|
|
|
26
|
-
| Unit | Fast | Single function/class |
|
|
27
|
-
| Integration | Medium | Multiple components |
|
|
28
|
-
| E2E | Slow | Full user flow |
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## AAA Pattern
|
|
33
|
-
|
|
34
|
-
```csharp
|
|
35
|
-
[Fact]
|
|
36
|
-
public void Method_Scenario_Expected()
|
|
37
|
-
{
|
|
38
|
-
// Arrange - Set up test data
|
|
39
|
-
var input = CreateInput();
|
|
40
|
-
|
|
41
|
-
// Act - Execute the code
|
|
42
|
-
var result = Process(input);
|
|
43
|
-
|
|
44
|
-
// Assert - Verify outcome
|
|
45
|
-
Assert.Equal(expected, result);
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Test Naming
|
|
52
|
-
|
|
53
|
-
Format: `Method_Scenario_ExpectedResult`
|
|
54
|
-
|
|
55
|
-
| ❌ Bad | ✅ Good |
|
|
56
|
-
|--------|---------|
|
|
57
|
-
| TestAdd | Add_TwoPositive_ReturnsSum |
|
|
58
|
-
| Test1 | GetUser_InvalidId_ThrowsException |
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## What to Test
|
|
63
|
-
|
|
64
|
-
| ✅ Test | ❌ Skip |
|
|
65
|
-
|---------|---------|
|
|
66
|
-
| Business logic | Framework code |
|
|
67
|
-
| Edge cases | Getters/setters |
|
|
68
|
-
| Error handling | Third-party libs |
|
|
69
|
-
| Public API | Implementation details |
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Mocking Guidelines
|
|
74
|
-
|
|
75
|
-
| Mock | Don't Mock |
|
|
76
|
-
|------|------------|
|
|
77
|
-
| External APIs | The code under test |
|
|
78
|
-
| Database | Simple objects |
|
|
79
|
-
| File system | Pure functions |
|
|
80
|
-
| Time/Random | Business logic |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Code Coverage
|
|
85
|
-
|
|
86
|
-
| Metric | Target |
|
|
87
|
-
|--------|--------|
|
|
88
|
-
| Overall | 70-80% |
|
|
89
|
-
| Business logic | 90%+ |
|
|
90
|
-
| Controllers | 60%+ |
|
|
91
|
-
| Infrastructure | Lower priority |
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## DO / DON'T
|
|
96
|
-
|
|
97
|
-
| ✅ Do | ❌ Don't |
|
|
98
|
-
|-------|---------|
|
|
99
|
-
| One concept per test | Test multiple things |
|
|
100
|
-
| Descriptive names | Cryptic test names |
|
|
101
|
-
| Independent tests | Tests that depend on order |
|
|
102
|
-
| Test edge cases | Only happy path |
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vitest-testing
|
|
3
|
-
description: Vitest testing for Vue3 applications
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Vitest Testing
|
|
7
|
-
|
|
8
|
-
> Unit and component testing for Vue3.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Basic Test
|
|
13
|
-
|
|
14
|
-
```typescript
|
|
15
|
-
import { describe, it, expect } from 'vitest'
|
|
16
|
-
|
|
17
|
-
describe('Calculator', () => {
|
|
18
|
-
it('adds two numbers', () => {
|
|
19
|
-
expect(2 + 3).toBe(5)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Component Test
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
import { mount } from '@vue/test-utils'
|
|
30
|
-
import { describe, it, expect } from 'vitest'
|
|
31
|
-
import MyButton from './MyButton.vue'
|
|
32
|
-
|
|
33
|
-
describe('MyButton', () => {
|
|
34
|
-
it('renders label', () => {
|
|
35
|
-
const wrapper = mount(MyButton, {
|
|
36
|
-
props: { label: 'Click me' }
|
|
37
|
-
})
|
|
38
|
-
expect(wrapper.text()).toContain('Click me')
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
it('emits click event', async () => {
|
|
42
|
-
const wrapper = mount(MyButton)
|
|
43
|
-
await wrapper.find('button').trigger('click')
|
|
44
|
-
expect(wrapper.emitted('click')).toBeTruthy()
|
|
45
|
-
})
|
|
46
|
-
})
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Testing Composables
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
import { describe, it, expect } from 'vitest'
|
|
55
|
-
import { useCounter } from './useCounter'
|
|
56
|
-
|
|
57
|
-
describe('useCounter', () => {
|
|
58
|
-
it('increments count', () => {
|
|
59
|
-
const { count, increment } = useCounter()
|
|
60
|
-
|
|
61
|
-
expect(count.value).toBe(0)
|
|
62
|
-
increment()
|
|
63
|
-
expect(count.value).toBe(1)
|
|
64
|
-
})
|
|
65
|
-
})
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Mocking
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
import { vi, describe, it, expect } from 'vitest'
|
|
74
|
-
import { fetchUsers } from './api'
|
|
75
|
-
|
|
76
|
-
vi.mock('./api', () => ({
|
|
77
|
-
fetchUsers: vi.fn().mockResolvedValue([{ id: 1 }])
|
|
78
|
-
}))
|
|
79
|
-
|
|
80
|
-
describe('UserList', () => {
|
|
81
|
-
it('fetches users', async () => {
|
|
82
|
-
const users = await fetchUsers()
|
|
83
|
-
expect(users).toHaveLength(1)
|
|
84
|
-
})
|
|
85
|
-
})
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Pinia Store Testing
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
import { setActivePinia, createPinia } from 'pinia'
|
|
94
|
-
import { useUserStore } from './userStore'
|
|
95
|
-
|
|
96
|
-
describe('User Store', () => {
|
|
97
|
-
beforeEach(() => {
|
|
98
|
-
setActivePinia(createPinia())
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
it('has initial state', () => {
|
|
102
|
-
const store = useUserStore()
|
|
103
|
-
expect(store.user).toBeNull()
|
|
104
|
-
})
|
|
105
|
-
})
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Run Tests
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
npm run test
|
|
114
|
-
npm run test -- --watch
|
|
115
|
-
npm run test -- --coverage
|
|
116
|
-
```
|