@accounter/server 0.0.9-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb → 0.0.9-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +27 -5
  2. package/README.md +66 -3
  3. package/dist/server/scripts/seed-admin-context.js +20 -25
  4. package/dist/server/scripts/seed-admin-context.js.map +1 -1
  5. package/dist/server/src/__tests__/db-bootstrap.test.js +7 -2
  6. package/dist/server/src/__tests__/db-bootstrap.test.js.map +1 -1
  7. package/dist/server/src/__tests__/factories/business.d.ts +1 -1
  8. package/dist/server/src/__tests__/factories/financial-account.d.ts +1 -1
  9. package/dist/server/src/__tests__/factories/index.test.js +1 -0
  10. package/dist/server/src/__tests__/factories/index.test.js.map +1 -1
  11. package/dist/server/src/__tests__/factories/tax-category.d.ts +1 -1
  12. package/dist/server/src/__tests__/factories/tax-category.js +1 -1
  13. package/dist/server/src/__tests__/factories/tax-category.js.map +1 -1
  14. package/dist/server/src/__tests__/factories/tax-category.test.js +8 -6
  15. package/dist/server/src/__tests__/factories/tax-category.test.js.map +1 -1
  16. package/dist/server/src/__tests__/helpers/fixture-loader.d.ts +1 -1
  17. package/dist/server/src/__tests__/helpers/fixture-loader.js +25 -52
  18. package/dist/server/src/__tests__/helpers/fixture-loader.js.map +1 -1
  19. package/dist/server/src/__tests__/helpers/migration-verification.d.ts +1 -1
  20. package/dist/server/src/__tests__/helpers/migration-verification.js.map +1 -1
  21. package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js +4 -4
  22. package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js.map +1 -1
  23. package/dist/server/src/__tests__/helpers/seed-helpers.d.ts +9 -9
  24. package/dist/server/src/__tests__/helpers/seed-helpers.js +57 -54
  25. package/dist/server/src/__tests__/helpers/seed-helpers.js.map +1 -1
  26. package/dist/server/src/__tests__/seed-admin-context.integration.test.js +2 -1
  27. package/dist/server/src/__tests__/seed-admin-context.integration.test.js.map +1 -1
  28. package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js +3 -2
  29. package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js.map +1 -1
  30. package/dist/server/src/demo-fixtures/__tests__/seed-and-validate.test.d.ts +1 -0
  31. package/dist/server/src/demo-fixtures/__tests__/seed-and-validate.test.js +69 -0
  32. package/dist/server/src/demo-fixtures/__tests__/seed-and-validate.test.js.map +1 -0
  33. package/dist/server/src/demo-fixtures/__tests__/use-case-registry.test.d.ts +1 -0
  34. package/dist/server/src/demo-fixtures/__tests__/use-case-registry.test.js +26 -0
  35. package/dist/server/src/demo-fixtures/__tests__/use-case-registry.test.js.map +1 -0
  36. package/dist/server/src/demo-fixtures/helpers/admin-context.d.ts +10 -0
  37. package/dist/server/src/demo-fixtures/helpers/admin-context.js +40 -0
  38. package/dist/server/src/demo-fixtures/helpers/admin-context.js.map +1 -0
  39. package/dist/server/src/demo-fixtures/helpers/placeholder.d.ts +45 -0
  40. package/dist/server/src/demo-fixtures/helpers/placeholder.js +50 -0
  41. package/dist/server/src/demo-fixtures/helpers/placeholder.js.map +1 -0
  42. package/dist/server/src/demo-fixtures/helpers/seed-exchange-rates.d.ts +21 -0
  43. package/dist/server/src/demo-fixtures/helpers/seed-exchange-rates.js +26 -0
  44. package/dist/server/src/demo-fixtures/helpers/seed-exchange-rates.js.map +1 -0
  45. package/dist/server/src/demo-fixtures/helpers/seed-vat.d.ts +20 -0
  46. package/dist/server/src/demo-fixtures/helpers/seed-vat.js +30 -0
  47. package/dist/server/src/demo-fixtures/helpers/seed-vat.js.map +1 -0
  48. package/dist/server/src/demo-fixtures/use-cases/equity/shareholder-dividend.d.ts +9 -0
  49. package/dist/server/src/demo-fixtures/use-cases/equity/shareholder-dividend.js +86 -0
  50. package/dist/server/src/demo-fixtures/use-cases/equity/shareholder-dividend.js.map +1 -0
  51. package/dist/server/src/demo-fixtures/use-cases/expenses/monthly-expense-foreign-currency.d.ts +12 -0
  52. package/dist/server/src/demo-fixtures/use-cases/expenses/monthly-expense-foreign-currency.js +375 -0
  53. package/dist/server/src/demo-fixtures/use-cases/expenses/monthly-expense-foreign-currency.js.map +1 -0
  54. package/dist/server/src/demo-fixtures/use-cases/income/client-payment-with-refund.d.ts +10 -0
  55. package/dist/server/src/demo-fixtures/use-cases/income/client-payment-with-refund.js +113 -0
  56. package/dist/server/src/demo-fixtures/use-cases/income/client-payment-with-refund.js.map +1 -0
  57. package/dist/server/src/demo-fixtures/use-cases/index.d.ts +41 -0
  58. package/dist/server/src/demo-fixtures/use-cases/index.js +50 -0
  59. package/dist/server/src/demo-fixtures/use-cases/index.js.map +1 -0
  60. package/dist/server/src/demo-fixtures/validate-demo-data.d.ts +1 -0
  61. package/dist/server/src/demo-fixtures/validate-demo-data.js +117 -0
  62. package/dist/server/src/demo-fixtures/validate-demo-data.js.map +1 -0
  63. package/dist/server/src/demo-fixtures/validators/ledger-validators.d.ts +349 -0
  64. package/dist/server/src/demo-fixtures/validators/ledger-validators.js +602 -0
  65. package/dist/server/src/demo-fixtures/validators/ledger-validators.js.map +1 -0
  66. package/dist/server/src/demo-fixtures/validators/ledger-validators.test.d.ts +1 -0
  67. package/dist/server/src/demo-fixtures/validators/ledger-validators.test.js +247 -0
  68. package/dist/server/src/demo-fixtures/validators/ledger-validators.test.js.map +1 -0
  69. package/dist/server/src/demo-fixtures/validators/types.d.ts +69 -0
  70. package/dist/server/src/demo-fixtures/validators/types.js +8 -0
  71. package/dist/server/src/demo-fixtures/validators/types.js.map +1 -0
  72. package/dist/server/src/fixtures/fixture-spec.d.ts +146 -0
  73. package/dist/server/src/fixtures/fixture-spec.js +2 -0
  74. package/dist/server/src/fixtures/fixture-spec.js.map +1 -0
  75. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js +4 -0
  76. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js.map +1 -1
  77. package/dist/server/src/modules/deel/resolvers/deel.resolvers.js +0 -3
  78. package/dist/server/src/modules/deel/resolvers/deel.resolvers.js.map +1 -1
  79. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js +4 -3
  80. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js.map +1 -1
  81. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js +5 -3
  82. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js.map +1 -1
  83. package/dist/server/src/shared/constants.d.ts +1 -0
  84. package/dist/server/src/shared/constants.js +1 -0
  85. package/dist/server/src/shared/constants.js.map +1 -1
  86. package/dist/server/src/shared/helpers/misc.js +2 -2
  87. package/dist/server/src/shared/helpers/misc.js.map +1 -1
  88. package/docs/demo-staging-guide.md +611 -0
  89. package/package.json +6 -3
  90. package/scripts/seed-admin-context.ts +22 -33
  91. package/src/__tests__/db-bootstrap.test.ts +9 -2
  92. package/src/__tests__/factories/business.ts +1 -1
  93. package/src/__tests__/factories/financial-account.ts +1 -1
  94. package/src/__tests__/factories/index.test.ts +1 -0
  95. package/src/__tests__/factories/tax-category.test.ts +8 -6
  96. package/src/__tests__/factories/tax-category.ts +2 -2
  97. package/src/__tests__/helpers/fixture-loader.ts +26 -61
  98. package/src/__tests__/helpers/migration-verification.ts +2 -2
  99. package/src/__tests__/helpers/seed-helpers.business.test.ts +4 -4
  100. package/src/__tests__/helpers/seed-helpers.ts +66 -75
  101. package/src/__tests__/seed-admin-context.integration.test.ts +2 -1
  102. package/src/demo-fixtures/__tests__/deterministic-uuid.test.ts +3 -2
  103. package/src/demo-fixtures/__tests__/seed-and-validate.test.ts +96 -0
  104. package/src/demo-fixtures/__tests__/use-case-registry.test.ts +27 -0
  105. package/src/demo-fixtures/helpers/admin-context.ts +59 -0
  106. package/src/demo-fixtures/helpers/placeholder.ts +50 -0
  107. package/src/demo-fixtures/helpers/seed-exchange-rates.ts +29 -0
  108. package/src/demo-fixtures/helpers/seed-vat.ts +35 -0
  109. package/src/demo-fixtures/use-cases/equity/shareholder-dividend.ts +88 -0
  110. package/src/demo-fixtures/use-cases/expenses/monthly-expense-foreign-currency.ts +377 -0
  111. package/src/demo-fixtures/use-cases/income/client-payment-with-refund.ts +115 -0
  112. package/src/demo-fixtures/use-cases/index.ts +52 -0
  113. package/src/demo-fixtures/validate-demo-data.ts +153 -0
  114. package/src/demo-fixtures/validators/README.md +190 -0
  115. package/src/demo-fixtures/validators/ledger-validators.test.ts +298 -0
  116. package/src/demo-fixtures/validators/ledger-validators.ts +711 -0
  117. package/src/demo-fixtures/validators/types.ts +83 -0
  118. package/src/fixtures/fixture-spec.ts +158 -0
  119. package/src/modules/charges-matcher/__tests__/single-match-integration.test.ts +6 -0
  120. package/src/modules/deel/resolvers/deel.resolvers.ts +0 -3
  121. package/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.ts +4 -3
  122. package/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts +6 -3
  123. package/src/shared/constants.ts +2 -0
  124. package/src/shared/helpers/misc.ts +2 -3
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @accounter/server
2
2
 
3
- ## 0.0.9-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb
3
+ ## 0.0.9-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -204,6 +204,28 @@
204
204
  utilize the `businessId` when constructing links to business detail pages, resolving the issue
205
205
  of incorrect navigation.
206
206
 
207
+ - [#2874](https://github.com/Urigo/accounter-fullstack/pull/2874)
208
+ [`d6b165f`](https://github.com/Urigo/accounter-fullstack/commit/d6b165f05f3f6a79780bc045716f8c280689cbb5)
209
+ Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **New Demo Staging Dataset System**:
210
+ Introduced a comprehensive system for seeding rich, deterministic financial data for staging and
211
+ development environments, based on predefined use-cases.
212
+ - **Comprehensive Ledger Validation**: Implemented a robust validation layer
213
+ (`packages/server/src/demo-fixtures/validators/`) that performs per-record, aggregate, and
214
+ entity-level balance checks, along with data integrity, foreign currency, and date validations.
215
+ - **Use-Case Driven Data Seeding**: The system now uses a registry of self-contained financial
216
+ scenarios (`packages/server/src/demo-fixtures/use-cases/`) that can be seeded with a single
217
+ command, ensuring stable entity IDs across deployments using deterministic UUIDs.
218
+ - **New NPM Scripts and Test Suite**: Added new `package.json` scripts (`seed:staging-demo`,
219
+ `validate:demo`, `test:demo-seed`) and a dedicated Vitest project (`demo-seed`) for end-to-end
220
+ testing of the seeding and validation pipeline.
221
+ - **Refactored Seed Helpers**: Centralized and improved helpers for idempotent creation of
222
+ financial entities, businesses, and tax categories, along with new helpers for seeding exchange
223
+ rates and VAT defaults.
224
+ - **Extensive Documentation**: New documentation files (`docs/demo-staging-dataset-spec.md`,
225
+ `docs/demo-staging-dataset-prompt-plan.md`, `docs/demo-staging-dataset-todo.md`,
226
+ `packages/server/docs/demo-staging-guide.md`) provide detailed specifications, implementation
227
+ plans, and developer guides.
228
+
207
229
  - [#2831](https://github.com/Urigo/accounter-fullstack/pull/2831)
208
230
  [`6136464`](https://github.com/Urigo/accounter-fullstack/commit/61364643eafac0c15ea5f444d3ecc9c33e854811)
209
231
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **New GraphQL Scalar for Country Codes**:
@@ -535,10 +557,10 @@
535
557
  [`ca5e62b`](https://github.com/Urigo/accounter-fullstack/commit/ca5e62b91faaf33c99ac178575304797150efe1a),
536
558
  [`73b11ba`](https://github.com/Urigo/accounter-fullstack/commit/73b11ba1fd676a21b4ba44fe99e2bfd181e513dc),
537
559
  [`c7d6f21`](https://github.com/Urigo/accounter-fullstack/commit/c7d6f21ed62658159b1323334501daca03c8d3e5)]:
538
- - @accounter/green-invoice-graphql@0.8.3-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb
539
- - @accounter/pcn874-generator@0.6.4-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb
540
- - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb
541
- - @accounter/shaam6111-generator@0.1.5-alpha-20251231083050-a0e737863ca2a9fa68506d15357e55d9287972cb
560
+ - @accounter/green-invoice-graphql@0.8.3-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588
561
+ - @accounter/pcn874-generator@0.6.4-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588
562
+ - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588
563
+ - @accounter/shaam6111-generator@0.1.5-alpha-20251231163357-33d4c33fec5e21dad2e04d1f293f6248d2550588
542
564
 
543
565
  ## 0.0.8
544
566
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Test Suites
4
4
 
5
- The test suite is split into two Vitest projects for efficiency and isolation:
5
+ The test suite is split into three Vitest projects for efficiency and isolation:
6
6
 
7
7
  ### 1. Unit Tests (`yarn test`)
8
8
 
@@ -21,6 +21,23 @@ DB-backed tests including:
21
21
  - PostgreSQL running
22
22
  - Migrations applied (see below)
23
23
 
24
+ ### 3. Demo Seed E2E (`yarn test:demo-seed`)
25
+
26
+ Full seed-and-validate pipeline test that:
27
+
28
+ - Seeds complete demo dataset
29
+ - Validates data integrity and ledger balance
30
+ - Takes 10-30 seconds to complete
31
+
32
+ **Prerequisites:**
33
+
34
+ - PostgreSQL running
35
+ - Migrations applied
36
+ - `ALLOW_DEMO_SEED=1` environment variable
37
+
38
+ **Graceful Failure**: If migrations are stale, the test fails with a clear error message directing
39
+ you to run migrations, rather than hanging or producing cryptic errors.
40
+
24
41
  ### Running Tests
25
42
 
26
43
  ```bash
@@ -30,8 +47,8 @@ yarn test
30
47
  # Unit + integration tests (for PRs)
31
48
  yarn test:integration
32
49
 
33
- # All suites (for main branch merges)
34
- yarn test:all
50
+ # Demo seed E2E only
51
+ ALLOW_DEMO_SEED=1 yarn test:demo-seed
35
52
  ```
36
53
 
37
54
  ## Test DB Harness
@@ -87,6 +104,52 @@ The global Vitest setup may set `TEST_ENV_FILE` automatically to a temporary pat
87
104
  needed. If the write fails, tests continue (non-fatal). To disable writing entirely you can point
88
105
  `TEST_ENV_FILE` to a throwaway location.
89
106
 
107
+ ## Demo Staging Dataset
108
+
109
+ The demo staging dataset system provides **use-case-driven financial scenarios** for staging
110
+ environments. Each use-case represents a complete financial scenario (expense, income, equity, etc.)
111
+ that can be seeded with deterministic UUIDs for stable demo data across deployments.
112
+
113
+ ### Quick Start
114
+
115
+ ```bash
116
+ # Seed demo data (staging/local only - requires explicit flag)
117
+ ALLOW_DEMO_SEED=1 yarn seed:staging-demo
118
+
119
+ # Validate seeded data integrity
120
+ yarn validate:demo
121
+
122
+ # Combined workflow (recommended)
123
+ ALLOW_DEMO_SEED=1 yarn seed:staging-demo && yarn validate:demo
124
+ ```
125
+
126
+ ### Key Features
127
+
128
+ - **Deterministic UUIDs**: Stable entity IDs via UUID v5 generation
129
+ - **Modular Registry**: Self-contained use-case fixtures with metadata
130
+ - **Production Safeguards**: Hard refusal to run in production environments
131
+ - **Comprehensive Validation**: Ledger balance checks, entity reconciliation
132
+
133
+ ### Documentation
134
+
135
+ - **Specification**: `docs/demo-staging-dataset-spec.md` – Complete technical specification
136
+ - **Developer Guide**: `packages/server/docs/demo-staging-guide.md` – Quick start, adding use-cases,
137
+ troubleshooting
138
+ - **Implementation Plan**: `docs/demo-staging-dataset-prompt-plan.md` – Step-by-step prompts
139
+ - **Progress Tracking**: `docs/demo-staging-dataset-todo.md` – Implementation checklist
140
+
141
+ ### Architecture
142
+
143
+ ```
144
+ Use-Case Registry → Seed Orchestrator → Validation Layer
145
+ (TypeScript modules) (seed-demo-data) (validate-demo)
146
+ ```
147
+
148
+ See the [Developer Guide](./docs/demo-staging-guide.md) for detailed instructions on adding new
149
+ use-cases and troubleshooting.
150
+
151
+ ---
152
+
90
153
  ## Demo Test Data & Ledger Docs
91
154
 
92
155
  High-level architecture, roadmap and prompts are maintained in root `docs/`:
@@ -30,29 +30,20 @@ export async function seedAdminCore(client) {
30
30
  // 1. Create admin business entity
31
31
  console.log('Creating admin business entity...');
32
32
  // First check if admin entity already exists (by name and type, ignoring owner_id for admin)
33
- const existingAdmin = await client.query(`SELECT id FROM accounter_schema.financial_entities
34
- WHERE name = $1 AND type = $2
35
- ORDER BY created_at ASC
36
- LIMIT 1`, ['Admin Business', 'business']);
37
- let adminEntityId;
38
- if (existingAdmin.rows.length > 0) {
39
- adminEntityId = existingAdmin.rows[0].id;
40
- console.log(`ℹ️ Admin entity already exists: ${adminEntityId}`);
41
- }
42
- else {
43
- const { id } = await ensureFinancialEntity(client, {
44
- name: 'Admin Business',
45
- type: 'business',
46
- });
47
- adminEntityId = id;
48
- console.log(`✅ Admin entity: ${adminEntityId}`);
49
- // Create corresponding business record
50
- await ensureBusinessForEntity(client, adminEntityId);
51
- console.log('✅ Admin business record created');
52
- // Update owner_id to self
53
- await client.query(`UPDATE accounter_schema.financial_entities SET owner_id = $1 WHERE id = $1`, [adminEntityId]);
54
- console.log('✅ Admin entity owner_id set to self');
55
- }
33
+ const { id } = await ensureFinancialEntity(client, {
34
+ name: 'Admin Business',
35
+ type: 'business',
36
+ });
37
+ const adminEntityId = id;
38
+ console.log(`✅ Admin entity: ${adminEntityId}`);
39
+ // Create corresponding business record
40
+ await ensureBusinessForEntity(client, adminEntityId);
41
+ console.log('✅ Admin business record created');
42
+ // Update owner_id to self
43
+ await client.query(`UPDATE accounter_schema.financial_entities SET owner_id = $1 WHERE id = $1`, [
44
+ adminEntityId,
45
+ ]);
46
+ console.log('✅ Admin entity owner_id set to self');
56
47
  // 2. Create authority businesses
57
48
  const authorities = {
58
49
  businesses: ['VAT', 'Tax', 'Social Security'],
@@ -64,9 +55,10 @@ export async function seedAdminCore(client) {
64
55
  const { id } = await ensureFinancialEntity(client, {
65
56
  name,
66
57
  type: 'business',
58
+ ownerId: adminEntityId,
67
59
  });
68
60
  authorityBusinessIds[name] = id;
69
- await ensureBusinessForEntity(client, id, { noInvoicesRequired: true });
61
+ await ensureBusinessForEntity(client, id, { isDocumentsOptional: true });
70
62
  }
71
63
  console.log(`✅ Created ${authorities.businesses.length} authority businesses`);
72
64
  // 3. Create authority tax categories
@@ -76,6 +68,7 @@ export async function seedAdminCore(client) {
76
68
  const { id } = await ensureFinancialEntity(client, {
77
69
  name,
78
70
  type: 'tax_category',
71
+ ownerId: adminEntityId,
79
72
  });
80
73
  authorityTaxCategoryIds[name] = id;
81
74
  await ensureTaxCategoryForEntity(client, id);
@@ -102,6 +95,7 @@ export async function seedAdminCore(client) {
102
95
  const { id } = await ensureFinancialEntity(client, {
103
96
  name,
104
97
  type: 'tax_category',
98
+ ownerId: adminEntityId,
105
99
  });
106
100
  generalTaxCategoryIds[name] = id;
107
101
  await ensureTaxCategoryForEntity(client, id);
@@ -120,6 +114,7 @@ export async function seedAdminCore(client) {
120
114
  const { id } = await ensureFinancialEntity(client, {
121
115
  name,
122
116
  type: 'tax_category',
117
+ ownerId: adminEntityId,
123
118
  });
124
119
  crossYearTaxCategoryIds[name] = id;
125
120
  await ensureTaxCategoryForEntity(client, id);
@@ -162,7 +157,7 @@ export async function seedAdminCore(client) {
162
157
  .map((_, i) => `$${i + 1}`)
163
158
  .join(', ');
164
159
  const values = Object.values(context);
165
- await client.query(`INSERT INTO accounter_schema.user_context (${columns}) VALUES (${placeholders})`, values);
160
+ await client.query(`INSERT INTO accounter_schema.user_context (${columns}) VALUES (${placeholders}) ON CONFLICT (owner_id) DO NOTHING`, values);
166
161
  console.log('✅ user_context created');
167
162
  }
168
163
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"seed-admin-context.js","sourceRoot":"","sources":["../../../scripts/seed-admin-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed-admin-context.js","sourceRoot":"","sources":["../../../scripts/seed-admin-context.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { TestDatabase, isPoolHealthy } from './helpers/db-setup.js';
3
3
  import { assertLatestMigrationApplied } from './helpers/migration-verification.js';
4
4
  import { seedAdminCore } from '../../scripts/seed-admin-context.js';
5
5
  import { qualifyTable } from './helpers/test-db-config.js';
6
+ import { buildAdminContextFromDb } from './helpers/admin-context-builder.js';
6
7
  /**
7
8
  * Smoke test for DB test harness
8
9
  * Verifies the full bootstrap pipeline: connect → seed → query
@@ -49,13 +50,17 @@ describe('DB Test Harness Bootstrap', () => {
49
50
  }));
50
51
  it('has expected tax categories', async () => db.withTransaction(async (client) => {
51
52
  await seedAdminCore(client);
52
- const result = await client.query(`SELECT COUNT(*) FROM ${qualifyTable('tax_categories')}`);
53
+ const adminContext = await buildAdminContextFromDb(client);
54
+ const result = await client.query(`SELECT COUNT(tc.*) FROM ${qualifyTable('tax_categories')} tc
55
+ LEFT JOIN ${qualifyTable('financial_entities')} fe USING (id)
56
+ WHERE owner_id = $1`, [adminContext.defaultAdminBusinessId]);
53
57
  const count = parseInt(result.rows[0].count, 10);
54
58
  expect(count).toBe(EXPECTED_TAX_CATEGORIES);
55
59
  }));
56
60
  it('has user_context after seeding', async () => db.withTransaction(async (client) => {
57
61
  await seedAdminCore(client);
58
- const result = await client.query(`SELECT owner_id, vat_business_id FROM ${qualifyTable('user_context')} LIMIT 1`);
62
+ const adminContext = await buildAdminContextFromDb(client);
63
+ const result = await client.query(`SELECT owner_id, vat_business_id FROM ${qualifyTable('user_context')} WHERE owner_id = $1 LIMIT 1`, [adminContext.defaultAdminBusinessId]);
59
64
  expect(result.rows).toHaveLength(1);
60
65
  expect(result.rows[0].owner_id).toBeDefined();
61
66
  expect(result.rows[0].vat_business_id).toBeDefined();
@@ -1 +1 @@
1
- {"version":3,"file":"db-bootstrap.test.js","sourceRoot":"","sources":["../../../../src/__tests__/db-bootstrap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;;;GAKG;AACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,EAAgB,CAAC;IAErB,MAAM,uBAAuB,GAAG,EAAE,CAAC;IAEnC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE,CACrD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAChD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;gBACQ,YAAY,CAAC,oBAAoB,CAAC;gBAClC,YAAY,CAAC,YAAY,CAAC;0CACA,CACnC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE,CAC/C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;gBACQ,YAAY,CAAC,oBAAoB,CAAC;gBAClC,YAAY,CAAC,YAAY,CAAC;4DACkB,CACrD,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE,CAC3C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,wBAAwB,YAAY,CAAC,gBAAgB,CAAC,EAAE,CACzD,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAC9C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,yCAAyC,YAAY,CAAC,cAAc,CAAC,UAAU,CAChF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,SAAS,GAAG,kCAAkC,CAAC;QAErD,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACtC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,eAAe,YAAY,CAAC,oBAAoB,CAAC;;sBAEnC,EACd,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,YAAY,CAAC,mBAAmB,EAC5D,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CACnC,wBAAwB,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,EAC5E,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,wBAAwB,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,EAC5E,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"db-bootstrap.test.js","sourceRoot":"","sources":["../../../../src/__tests__/db-bootstrap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;;;;GAKG;AACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,EAAgB,CAAC;IAErB,MAAM,uBAAuB,GAAG,EAAE,CAAC;IAEnC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE,CACrD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAChD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;gBACQ,YAAY,CAAC,oBAAoB,CAAC;gBAClC,YAAY,CAAC,YAAY,CAAC;0CACA,CACnC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE,CAC/C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;gBACQ,YAAY,CAAC,oBAAoB,CAAC;gBAClC,YAAY,CAAC,YAAY,CAAC;4DACkB,CACrD,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE,CAC3C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,2BAA2B,YAAY,CAAC,gBAAgB,CAAC;oBAC7C,YAAY,CAAC,oBAAoB,CAAC;4BAC1B,EACpB,CAAC,YAAY,CAAC,sBAAsB,CAAC,CACtC,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAC9C,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAChC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,yCAAyC,YAAY,CAAC,cAAc,CAAC,8BAA8B,EACnG,CAAC,YAAY,CAAC,sBAAsB,CAAC,CACtC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,SAAS,GAAG,kCAAkC,CAAC;QAErD,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACtC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,eAAe,YAAY,CAAC,oBAAoB,CAAC;;sBAEnC,EACd,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,YAAY,CAAC,mBAAmB,EAC5D,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CACnC,wBAAwB,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,EAC5E,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,wBAAwB,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,EAC5E,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FixtureBusinesses } from '__tests__/helpers/fixture-types.js';
1
+ import { FixtureBusinesses } from '../helpers/fixture-types.js';
2
2
  /**
3
3
  * Business factory for test fixtures
4
4
  *
@@ -1,4 +1,4 @@
1
- import { FixtureAccounts } from '__tests__/helpers/fixture-types.js';
1
+ import { FixtureAccounts } from '../helpers/fixture-types.js';
2
2
  /**
3
3
  * Valid financial account types
4
4
  */
@@ -30,6 +30,7 @@ describe('Factory Integration', () => {
30
30
  const taxCategoryId = makeUUID('tax-category', 'tax-expense');
31
31
  const taxCategory = createTaxCategory({
32
32
  id: taxCategoryId,
33
+ name: 'Expense Tax',
33
34
  });
34
35
  const accountId = makeUUID('financial-account', 'bank-account');
35
36
  const account = createFinancialAccount({
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FixtureTaxCategories } from '__tests__/helpers/fixture-types.js';
1
+ import { FixtureTaxCategories } from '../helpers/fixture-types.js';
2
2
  /**
3
3
  * Tax category factory for test fixtures
4
4
  *
@@ -37,7 +37,7 @@ export function createTaxCategory(overrides) {
37
37
  id: defaultId,
38
38
  // Intelligent name defaulting: use provided id, or use generated UUID
39
39
  // This ensures display name is always meaningful even when only id is specified
40
- name: overrides?.id ?? defaultId,
40
+ name: overrides?.name ?? overrides?.id ?? defaultId,
41
41
  hashavshevetName: null,
42
42
  taxExcluded: false,
43
43
  ...overrides,
@@ -1 +1 @@
1
- {"version":3,"file":"tax-category.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/tax-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAGnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAkE;IAElE,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,SAAS;QACb,sEAAsE;QACtE,gFAAgF;QAChF,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,SAAS;QAChC,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,KAAK;QAClB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tax-category.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/tax-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAGnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAkE;IAElE,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,SAAS;QACb,sEAAsE;QACtE,gFAAgF;QAChF,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,EAAE,IAAI,SAAS;QACnD,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,KAAK;QAClB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
@@ -5,7 +5,7 @@ import { createTaxCategory } from './tax-category.js';
5
5
  describe('Factory: Tax Category', () => {
6
6
  describe('createTaxCategory', () => {
7
7
  it('should create tax category with default values', () => {
8
- const category = createTaxCategory();
8
+ const category = createTaxCategory({ name: 'Default Category' });
9
9
  // Required field with default
10
10
  expect(category.id).toBeDefined();
11
11
  expect(category.id).toMatch(UUID_REGEX);
@@ -15,8 +15,8 @@ describe('Factory: Tax Category', () => {
15
15
  expect(category.hashavshevetName).toBeNull();
16
16
  });
17
17
  it('should generate unique IDs by default', () => {
18
- const category1 = createTaxCategory();
19
- const category2 = createTaxCategory();
18
+ const category1 = createTaxCategory({ name: 'Category 1' });
19
+ const category2 = createTaxCategory({ name: 'Category 2' });
20
20
  expect(category1.id).not.toBe(category2.id);
21
21
  });
22
22
  it('should apply overrides correctly', () => {
@@ -39,7 +39,7 @@ describe('Factory: Tax Category', () => {
39
39
  expect(category.taxExcluded).toBe(false);
40
40
  });
41
41
  it('should preserve all required fields', () => {
42
- const category = createTaxCategory();
42
+ const category = createTaxCategory({ name: 'Default Category' });
43
43
  // Verify structure matches expected pgtyped interface
44
44
  expect(category).toHaveProperty('id');
45
45
  expect(category).toHaveProperty('hashavshevetName');
@@ -48,6 +48,7 @@ describe('Factory: Tax Category', () => {
48
48
  it('should handle tax-excluded categories', () => {
49
49
  const category = createTaxCategory({
50
50
  taxExcluded: true,
51
+ name: 'Tax Exempt',
51
52
  });
52
53
  expect(category.taxExcluded).toBe(true);
53
54
  expect(category.hashavshevetName).toBeNull();
@@ -61,12 +62,13 @@ describe('Factory: Tax Category', () => {
61
62
  it('should allow explicit null overrides', () => {
62
63
  const category = createTaxCategory({
63
64
  hashavshevetName: null,
65
+ name: 'No Integration',
64
66
  });
65
67
  expect(category.hashavshevetName).toBeNull();
66
68
  });
67
69
  it('should create deterministic categories with seed', () => {
68
- const category1 = createTaxCategory({ id: makeUUID('tax-category', 'default-category') });
69
- const category2 = createTaxCategory({ id: makeUUID('tax-category', 'default-category') });
70
+ const category1 = createTaxCategory({ id: makeUUID('tax-category', 'default-category'), name: 'Default Category' });
71
+ const category2 = createTaxCategory({ id: makeUUID('tax-category', 'default-category'), name: 'Default Category' });
70
72
  expect(category1.id).toBe(category2.id);
71
73
  });
72
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tax-category.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/tax-category.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tax-category.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/tax-category.test.ts"],"names":[],"mappings":"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"}
@@ -97,4 +97,4 @@ export type FixtureIdMapping = Map<string, string>;
97
97
  * );
98
98
  * ```
99
99
  */
100
- export declare function insertFixture(client: PoolClient | Client, fixture: Fixture): Promise<FixtureIdMapping>;
100
+ export declare function insertFixture(client: PoolClient | Client, fixture: Fixture, adminBusinessId?: string): Promise<FixtureIdMapping>;
@@ -10,6 +10,8 @@
10
10
  import { assertValidFixture } from './fixture-validation.js';
11
11
  import { qualifyTable } from './test-db-config.js';
12
12
  import { makeUUID, makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
13
+ import { UUID_REGEX } from '../../shared/constants.js';
14
+ import { ensureBusinessForEntity, ensureFinancialEntity, ensureTaxCategoryForEntity } from './seed-helpers.js';
13
15
  /**
14
16
  * Custom error for fixture insertion failures
15
17
  *
@@ -100,7 +102,7 @@ export class FixtureInsertionError extends Error {
100
102
  * );
101
103
  * ```
102
104
  */
103
- export async function insertFixture(client, fixture) {
105
+ export async function insertFixture(client, fixture, adminBusinessId) {
104
106
  // Validate fixture before insertion
105
107
  assertValidFixture(fixture);
106
108
  const idMapping = new Map();
@@ -125,42 +127,16 @@ export async function insertFixture(client, fixture) {
125
127
  for (const business of fixture.businesses.businesses) {
126
128
  // Insert financial entity first (type='business')
127
129
  // Field mapping: business.name used for display (required); hebrewName is legacy/optional
128
- const entityResult = await client.query(`INSERT INTO ${qualifyTable('financial_entities')} (id, name, type)
129
- VALUES ($1, $2, 'business')
130
- ON CONFLICT (id) DO NOTHING
131
- RETURNING id`, [business.id, business.name || business.id]);
130
+ const { id: entityId } = await ensureFinancialEntity(client, {
131
+ id: business.id,
132
+ name: business.name || business.id,
133
+ type: 'business',
134
+ ownerId: adminBusinessId,
135
+ });
136
+ const { id: businessId, ...options } = business;
132
137
  // Insert business details - note: vat_number column maps to governmentId field
133
- await client.query(`INSERT INTO ${qualifyTable('businesses')} (
134
- id, hebrew_name, address, city, zip_code, email, website, phone_number, vat_number,
135
- exempt_dealer, suggestion_data, optional_vat, country,
136
- pcn874_record_type_override, can_settle_with_receipt, no_invoices_required
137
- )
138
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)
139
- ON CONFLICT (id) DO NOTHING`, [
140
- business.id,
141
- business.hebrewName,
142
- business.address,
143
- business.city,
144
- business.zipCode,
145
- business.email,
146
- business.website,
147
- business.phoneNumber,
148
- business.governmentId, // Maps to vat_number column
149
- business.exemptDealer ?? false,
150
- business.suggestions ?? null,
151
- business.optionalVat ?? false,
152
- business.country ?? 'ISR',
153
- business.pcn874RecordTypeOverride ?? null,
154
- business.isReceiptEnough ?? false,
155
- business.isDocumentsOptional ?? false,
156
- ]);
157
- if (entityResult.rows.length > 0) {
158
- idMapping.set(business.id, entityResult.rows[0].id);
159
- }
160
- else {
161
- // Entity already existed, map to itself
162
- idMapping.set(business.id, business.id);
163
- }
138
+ await ensureBusinessForEntity(client, entityId, options);
139
+ idMapping.set(business.id, entityId);
164
140
  }
165
141
  });
166
142
  }
@@ -169,22 +145,19 @@ export async function insertFixture(client, fixture) {
169
145
  await executeSavepointSection('tax_categories', async () => {
170
146
  for (const taxCategory of fixture.taxCategories.taxCategories) {
171
147
  // Insert financial entity first
172
- const entityResult = await client.query(`INSERT INTO ${qualifyTable('financial_entities')} (id, name, type)
173
- VALUES ($1, $2, 'tax_category')
174
- ON CONFLICT (id) DO NOTHING
175
- RETURNING id`, [taxCategory.id, taxCategory.hashavshevetName || taxCategory.id]);
148
+ const { id: entityId } = await ensureFinancialEntity(client, {
149
+ id: taxCategory.id,
150
+ name: taxCategory.name || taxCategory.id,
151
+ type: 'tax_category',
152
+ ownerId: adminBusinessId,
153
+ });
176
154
  // Insert tax category details
177
- await client.query(`INSERT INTO ${qualifyTable('tax_categories')} (
178
- id, hashavshevet_name, tax_excluded
179
- )
180
- VALUES ($1, $2, $3)
181
- ON CONFLICT (id) DO NOTHING`, [taxCategory.id, taxCategory.hashavshevetName, taxCategory.taxExcluded ?? false]);
182
- if (entityResult.rows.length > 0) {
183
- idMapping.set(taxCategory.id, entityResult.rows[0].id);
184
- }
185
- else {
186
- idMapping.set(taxCategory.id, taxCategory.id);
187
- }
155
+ await ensureTaxCategoryForEntity(client, entityId, {
156
+ name: taxCategory.name,
157
+ hashavshevetName: taxCategory.hashavshevetName,
158
+ taxExcluded: taxCategory.taxExcluded,
159
+ });
160
+ idMapping.set(taxCategory.id, entityId);
188
161
  }
189
162
  });
190
163
  }
@@ -266,7 +239,7 @@ export async function insertFixture(client, fixture) {
266
239
  for (const transaction of fixture.transactions.transactions) {
267
240
  // If account_id looks like an account_number (not a UUID), look up the actual UUID
268
241
  let accountId = transaction.account_id;
269
- if (accountId && !accountId.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i)) {
242
+ if (accountId && !accountId.match(UUID_REGEX)) {
270
243
  // account_id is actually an account_number, look up the UUID
271
244
  const accountResult = await client.query(`SELECT id FROM ${qualifyTable('financial_accounts')} WHERE account_number = $1`, [accountId]);
272
245
  if (accountResult.rows.length === 0) {