@accounter/server 0.0.9-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06 → 0.0.9-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b

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 (26) hide show
  1. package/.env.test +13 -0
  2. package/CHANGELOG.md +5 -32
  3. package/README.md +0 -34
  4. package/dist/server/src/__tests__/db-bootstrap.test.js +3 -3
  5. package/dist/server/src/__tests__/db-bootstrap.test.js.map +1 -1
  6. package/dist/server/src/__tests__/helpers/db-migrations.d.ts +1 -0
  7. package/dist/server/src/__tests__/helpers/db-migrations.js +1 -0
  8. package/dist/server/src/__tests__/helpers/db-migrations.js.map +1 -1
  9. package/dist/server/src/__tests__/helpers/db-setup.d.ts +1 -1
  10. package/dist/server/src/__tests__/helpers/db-setup.js +1 -1
  11. package/dist/server/src/__tests__/helpers/db-setup.js.map +1 -1
  12. package/dist/server/src/__tests__/helpers/test-database.d.ts +2 -0
  13. package/dist/server/src/__tests__/helpers/test-database.js +2 -1
  14. package/dist/server/src/__tests__/helpers/test-database.js.map +1 -1
  15. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js +0 -2
  16. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js.map +1 -1
  17. package/package.json +1 -1
  18. package/src/__tests__/db-bootstrap.test.ts +6 -3
  19. package/src/__tests__/helpers/db-migrations.ts +2 -0
  20. package/src/__tests__/helpers/db-setup.ts +1 -1
  21. package/src/__tests__/helpers/test-database.ts +3 -1
  22. package/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts +0 -2
  23. package/dist/server/src/__tests__/helpers/migration-verification.d.ts +0 -18
  24. package/dist/server/src/__tests__/helpers/migration-verification.js +0 -55
  25. package/dist/server/src/__tests__/helpers/migration-verification.js.map +0 -1
  26. package/src/__tests__/helpers/migration-verification.ts +0 -74
package/.env.test ADDED
@@ -0,0 +1,13 @@
1
+ ; Database variables
2
+ POSTGRES_USER=postgres
3
+ POSTGRES_PASSWORD=postgres
4
+ POSTGRES_HOST=localhost
5
+ POSTGRES_PORT=5432
6
+ POSTGRES_DB=accounter
7
+ POSTGRES_SSL='0'
8
+
9
+ ; Local entities (Auto-generated if using the seed script on setup)
10
+ DEFAULT_FINANCIAL_ENTITY_ID=00000000-0000-0000-0000-000000000000
11
+
12
+ ; Mesh dev (Richer logs on the dev environment)
13
+ DEBUG=1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @accounter/server
2
2
 
3
- ## 0.0.9-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06
3
+ ## 0.0.9-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -147,33 +147,6 @@
147
147
  - **Documentation**: Extensive documentation has been added, including JSDoc examples, idempotency
148
148
  semantics, security warnings, and thread safety considerations.
149
149
 
150
- - [#2788](https://github.com/Urigo/accounter-fullstack/pull/2788)
151
- [`4bbed45`](https://github.com/Urigo/accounter-fullstack/commit/4bbed4591cb3e23e129e46865e9ac4eb7d3b40d5)
152
- Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Test Suite Split**: The project's test
153
- suite has been formally split into distinct 'unit' and 'integration' test projects using Vitest,
154
- enhancing organization and execution efficiency.
155
- - **New Test Commands**: New `yarn` commands have been introduced: `yarn test` for unit tests,
156
- `yarn test:integration` for both unit and integration tests, and `yarn test:all` for running all
157
- suites.
158
- - **Updated Documentation**: Both the root `README.md` and `packages/server/README.md` have been
159
- updated with comprehensive documentation on the new test suite structure, how to run tests, and
160
- prerequisites for integration tests.
161
-
162
- - [#2796](https://github.com/Urigo/accounter-fullstack/pull/2796)
163
- [`6eb5043`](https://github.com/Urigo/accounter-fullstack/commit/6eb504331bad23e8fe87f4bf5f4645123f2bee06)
164
- Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Centralized Migration Verification
165
- Logic**: Introduced a new helper module `migration-verification.ts` that centralizes the logic for
166
- checking and asserting whether the latest database migration has been applied. This module
167
- provides both a non-throwing `checkLatestMigration` function and an `assertLatestMigrationApplied`
168
- function that throws an error if the migration is not found.
169
- - **New CI/CD Migration Verification Script**: Added a new standalone script
170
- `verify-migrations.ts` that leverages the centralized verification logic. This script connects
171
- to a PostgreSQL database using environment variables and exits with a non-zero status if the
172
- latest migration is not applied, making it suitable for CI/CD pipelines.
173
- - **Refactored Test Suite**: Updated the `db-bootstrap.test.ts` file to utilize the newly created
174
- `assertLatestMigrationApplied` utility, replacing the previous inline query for migration
175
- verification. This improves consistency and reduces code duplication in tests.
176
-
177
150
  - [#2751](https://github.com/Urigo/accounter-fullstack/pull/2751)
178
151
  [`77ad870`](https://github.com/Urigo/accounter-fullstack/commit/77ad8705cfadfab6a4e182c80937b8d96467098a)
179
152
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Centralized DB Pool Management**: The
@@ -249,10 +222,10 @@
249
222
  [`ef68321`](https://github.com/Urigo/accounter-fullstack/commit/ef68321608d60a7208e82a2c413f27beb502e3cc),
250
223
  [`ef68321`](https://github.com/Urigo/accounter-fullstack/commit/ef68321608d60a7208e82a2c413f27beb502e3cc),
251
224
  [`c7d6f21`](https://github.com/Urigo/accounter-fullstack/commit/c7d6f21ed62658159b1323334501daca03c8d3e5)]:
252
- - @accounter/green-invoice-graphql@0.8.3-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06
253
- - @accounter/pcn874-generator@0.6.4-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06
254
- - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06
255
- - @accounter/shaam6111-generator@0.1.5-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06
225
+ - @accounter/green-invoice-graphql@0.8.3-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b
226
+ - @accounter/pcn874-generator@0.6.4-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b
227
+ - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b
228
+ - @accounter/shaam6111-generator@0.1.5-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b
256
229
 
257
230
  ## 0.0.8
258
231
 
package/README.md CHANGED
@@ -1,39 +1,5 @@
1
1
  # @accounter-helper/server
2
2
 
3
- ## Test Suites
4
-
5
- The test suite is split into two Vitest projects for efficiency and isolation:
6
-
7
- ### 1. Unit Tests (`yarn test`)
8
-
9
- Fast, isolated tests with no external dependencies. Runs by default and excludes DB-backed tests and
10
- demo fixtures.
11
-
12
- ### 2. Integration Tests (`yarn test:integration`)
13
-
14
- DB-backed tests including:
15
-
16
- - Server helpers and test harness (`packages/server/src/__tests__/**`)
17
- - Module integration tests (`packages/server/src/modules/**/*.integration.test.ts`)
18
-
19
- **Prerequisites:**
20
-
21
- - PostgreSQL running
22
- - Migrations applied (see below)
23
-
24
- ### Running Tests
25
-
26
- ```bash
27
- # Fast unit tests only (default)
28
- yarn test
29
-
30
- # Unit + integration tests (for PRs)
31
- yarn test:integration
32
-
33
- # All suites (for main branch merges)
34
- yarn test:all
35
- ```
36
-
37
3
  ## Test DB Harness
38
4
 
39
5
  This package includes a Vitest-friendly PostgreSQL test harness with:
@@ -1,6 +1,5 @@
1
1
  import { describe, it, expect, beforeAll, afterAll } from 'vitest';
2
- import { TestDatabase, isPoolHealthy } from './helpers/db-setup.js';
3
- import { assertLatestMigrationApplied } from './helpers/migration-verification.js';
2
+ import { TestDatabase, LATEST_MIGRATION_NAME, isPoolHealthy } from './helpers/db-setup.js';
4
3
  import { seedAdminCore } from '../../scripts/seed-admin-context.js';
5
4
  import { qualifyTable } from './helpers/test-db-config.js';
6
5
  /**
@@ -26,7 +25,8 @@ describe('DB Test Harness Bootstrap', () => {
26
25
  expect(m.total).toBeGreaterThanOrEqual(0);
27
26
  });
28
27
  it('is at latest migration (schema ready)', async () => db.withTransaction(async (client) => {
29
- await assertLatestMigrationApplied(client);
28
+ const result = await client.query(`SELECT 1 FROM ${qualifyTable('migration')} WHERE name = $1 LIMIT 1`, [LATEST_MIGRATION_NAME]);
29
+ expect(result.rowCount).toBe(1);
30
30
  }));
31
31
  it('has admin business after seeding', async () => db.withTransaction(async (client) => {
32
32
  await seedAdminCore(client);
@@ -1 +1 @@
1
- {"version":3,"file":"db-bootstrap.test.js","sourceRoot":"","sources":["../../../../src/__tests__/db-bootstrap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-bootstrap.test.js","sourceRoot":"","sources":["../../../../src/__tests__/db-bootstrap.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import type { Pool } from 'pg';
2
+ export { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
2
3
  export declare function runMigrationsIfNeeded(pgPool: Pool): Promise<void>;
@@ -3,6 +3,7 @@ import { testDbConfig, testDbSchema } from './test-db-config.js';
3
3
  import { runPGMigrations, LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
4
4
  import { debugLog, emitMetrics } from './diagnostics.js';
5
5
  import { TestDbMigrationError } from './errors.js';
6
+ export { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
6
7
  export async function runMigrationsIfNeeded(pgPool) {
7
8
  let needToRun = false;
8
9
  const client = await pgPool.connect();
@@ -1 +1 @@
1
- {"version":3,"file":"db-migrations.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/db-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAqB,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAY;IACtD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC,+BAA+B,EAC/B,CAAC,GAAG,YAAY,YAAY,CAAC,CAC9B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,qBAAqB,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,YAAY,oCAAoC,EACjE,CAAC,qBAAqB,CAAC,CACxB,CAAC;YACF,SAAS,GAAG,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,CAAC,8DAA8D,CAAC,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,QAAQ,CAAC,4CAA4C,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAiB,MAAM,gBAAgB,CACrD,cAAc,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAC7H,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CACrC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"db-migrations.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/db-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAqB,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAY;IACtD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC,+BAA+B,EAC/B,CAAC,GAAG,YAAY,YAAY,CAAC,CAC9B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,qBAAqB,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,YAAY,oCAAoC,EACjE,CAAC,qBAAqB,CAAC,CACxB,CAAC;YACF,SAAS,GAAG,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,CAAC,8DAA8D,CAAC,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,QAAQ,CAAC,4CAA4C,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAiB,MAAM,gBAAgB,CACrD,cAAc,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAC7H,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CACrC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { connectTestDb, closeTestDb } from './db-connection.js';
2
- export { runMigrationsIfNeeded } from './db-migrations.js';
2
+ export { runMigrationsIfNeeded, LATEST_MIGRATION_NAME } from './db-migrations.js';
3
3
  export { seedAdminOnce } from './db-fixtures.js';
4
4
  export { withTestTransaction, withConcurrentTransactions } from './test-transaction.js';
5
5
  export { isPoolHealthy, debugLog, emitMetrics } from './diagnostics.js';
@@ -1,5 +1,5 @@
1
1
  export { connectTestDb, closeTestDb } from './db-connection.js';
2
- export { runMigrationsIfNeeded } from './db-migrations.js';
2
+ export { runMigrationsIfNeeded, LATEST_MIGRATION_NAME } from './db-migrations.js';
3
3
  export { seedAdminOnce } from './db-fixtures.js';
4
4
  export { withTestTransaction, withConcurrentTransactions } from './test-transaction.js';
5
5
  export { isPoolHealthy, debugLog, emitMetrics } from './diagnostics.js';
@@ -1 +1 @@
1
- {"version":3,"file":"db-setup.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/db-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,uEAAuE;AACvE,MAAM,UAAU,eAAe,KAAU,CAAC"}
1
+ {"version":3,"file":"db-setup.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/db-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,uEAAuE;AACvE,MAAM,UAAU,eAAe,KAAU,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Pool } from 'pg';
2
+ import { LATEST_MIGRATION_NAME } from './db-migrations.js';
2
3
  import { withTestTransaction } from './test-transaction.js';
3
4
  export declare class TestDatabase {
4
5
  private pool;
@@ -9,3 +10,4 @@ export declare class TestDatabase {
9
10
  withTransaction<T>(fn: Parameters<typeof withTestTransaction<T>>[1]): Promise<T>;
10
11
  close(): Promise<void>;
11
12
  }
13
+ export { LATEST_MIGRATION_NAME };
@@ -1,5 +1,5 @@
1
1
  import { connectTestDb, closeTestDb } from './db-connection.js';
2
- import { runMigrationsIfNeeded } from './db-migrations.js';
2
+ import { runMigrationsIfNeeded, LATEST_MIGRATION_NAME } from './db-migrations.js';
3
3
  import { seedAdminOnce } from './db-fixtures.js';
4
4
  import { withTestTransaction } from './test-transaction.js';
5
5
  export class TestDatabase {
@@ -33,4 +33,5 @@ export class TestDatabase {
33
33
  this.pool = null;
34
34
  }
35
35
  }
36
+ export { LATEST_MIGRATION_NAME };
36
37
  //# sourceMappingURL=test-database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-database.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/test-database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,YAAY;IACf,IAAI,GAAgB,IAAI,CAAC;IAEjC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAI,EAAgD;QACvE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"test-database.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/test-database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,YAAY;IACf,IAAI,GAAgB,IAAI,CAAC;IAEjC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAI,EAAgD;QACvE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -28,8 +28,6 @@ import { Currency } from '../../../shared/enums.js';
28
28
  describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
29
29
  let db;
30
30
  beforeAll(async () => {
31
- // stale for 0.1 sec to avoid test flakiness
32
- await new Promise(resolve => setTimeout(resolve, 100));
33
31
  db = new TestDatabase();
34
32
  await db.connect();
35
33
  await db.ensureLatestSchema();
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-scenario-b.integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-scenario-b.integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AAEH,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACzE,IAAI,EAAgB,CAAC;IAErB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACxD,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,gBAAgB,CAAC,uBAAuB,EACpE,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,yDAAyD;YACzD,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,WAAW,CAAC,uBAAuB,EAC/D,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,cAAc,CAAC,uBAAuB,EAClE,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,SAAS,CAAC,gBAAgB,EACtD,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,gEAAgE;YAChE,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,mCAAmC,CAAC;2CAC7B,EACnC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CACvE,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,oBAAoB,CAAC,4BAA4B,EAC7E,CAAC,iBAAiB,CAAC,CACpB,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,gBAAgB,CAAC,uBAAuB,EACpE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CACvE,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,YAAY,CAAC,uBAAuB,EAChE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CACrE,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,YAAY,CAAC,oBAAoB,CAAC,+BAA+B,EAChF;gBACE,QAAQ,CAAC,oBAAoB,CAAC;gBAC9B,QAAQ,CAAC,wBAAwB,CAAC;gBAClC,QAAQ,CAAC,oBAAoB,CAAC;gBAC9B,QAAQ,CAAC,0BAA0B,CAAC;aACrC,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,4EAA4E;QAC5E,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,aAAa,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAEpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YAExD,6CAA6C;YAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,CAC3C,iBAAiB,YAAY,CAAC,SAAS,CAAC,gBAAgB,EACxD,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE1C,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,KAAK,CACjD,iBAAiB,YAAY,CAAC,cAAc,CAAC,uBAAuB,EACpE,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE/D,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,KAAK,CAC9C,iBAAiB,YAAY,CAAC,WAAW,CAAC,uBAAuB,EACjE,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEjE,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC;gBAAC,MAAM,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACtD,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;QAED,iFAAiF;QACjF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,YAAY,CAAC,SAAS,CAAC,gBAAgB,EACxD,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpC,mCAAmC;YACnC,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAa;gBACzB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,YAAY,CAAC,sBAAsB;gBAC3C,IAAI,EAAE,OAAO;aACd,CAAC;YAEF,4DAA4D;YAC5D,MAAM,OAAO,GAAG,uBAAuB,CAAC;gBACtC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE;gBAClB,YAAY;gBACZ,WAAW,EAAE,QAAQ;gBACrB,GAAG;gBACH,QAAQ,EAAE,QAAQ;gBAClB,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;aACrE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,MAAM,EACN,EAAE,8BAA8B,EAAE,IAAI,EAAE,EACxC,OAAc,EACd,EAAS,CACV,CAAC;YAEF,sCAAsC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAE9B,mEAAmE;YACnE,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,CAAC,CAAE,MAAc,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;YAEnF,qCAAqC;YACrC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,YAAY,CAAC,gBAAgB,CAAC,+CAA+C,EAC9F,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAC;YAEF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,uCAAuC;YACvC,4BAA4B,CAAC,YAAY,CAAC,IAAW,EAAE;gBACrD,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,6BAA6B;gBACvD,aAAa,EAAE,QAAQ,CAAC,oBAAoB,CAAC;gBAC7C,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC;gBAChD,gBAAgB,EAAE,QAAQ,CAAC,GAAG;gBAC9B,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,IAAI,KAAK;gBAChE,YAAY,EAAE,iBAAiB,EAAE,YAAY,IAAI,GAAG;gBACpD,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,IAAI,MAAM;aACjE,CAAC,CAAC;YAEH,kEAAkE;YAClE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;YAE7F,yBAAyB;YACzB,gBAAgB,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAChG,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACxD,oCAAoC;YACpC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,KAAK,CACvC,iBAAiB,YAAY,CAAC,SAAS,CAAC,gBAAgB,EACxD,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,iBAAiB,YAAY,CAAC,SAAS,CAAC,gBAAgB,EACxD,CAAC,QAAQ,CAAC,CACX,CAAC;YACF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAa;gBACzB,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,YAAY,CAAC,sBAAsB;gBAC3C,IAAI,EAAE,OAAO;aACd,CAAC;YACF,MAAM,OAAO,GAAG,uBAAuB,CAAC;gBACtC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE;gBAClB,YAAY;gBACZ,WAAW,EAAE,QAAQ;gBACrB,GAAG;gBACH,QAAQ,EAAE,QAAQ;gBAClB,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;aACrE,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAC1C,MAAM,EACN,EAAE,8BAA8B,EAAE,IAAI,EAAE,EACxC,OAAc,EACd,EAAS,CACV,CAAC;YACF,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CACrC,kBAAkB,YAAY,CAAC,gBAAgB,CAAC,uCAAuC,EACvF,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAC;YACF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,MAAM,EACN,EAAE,8BAA8B,EAAE,KAAK,EAAE,EACzC,OAAc,EACd,EAAS,CACV,CAAC;YACF,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CACtC,kBAAkB,YAAY,CAAC,gBAAgB,CAAC,uCAAuC,EACvF,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAC;YACF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEpD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,wCAAwC;QACxC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACrF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;QAClG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;QAC3E,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;QAC/F,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE9D,mCAAmC;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9C,sCAAsC;QACtC,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEjF,kCAAkC;QAClC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,6DAA6D;QAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QAE3D,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnD,0CAA0C;QAC1C,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,mEAAmE;QACnE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAErE,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,8EAA8E;QAC9E,MAAM,uBAAuB,GAAG,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;QACjH,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,uBAAuB,GAAG,CAAC,CAAC,CAAC,yBAAyB;QAC5E,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhE,iBAAiB;QACjB,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accounter/server",
3
- "version": "0.0.9-alpha-20251210092707-6eb504331bad23e8fe87f4bf5f4645123f2bee06",
3
+ "version": "0.0.9-alpha-20251210135728-d13892c018cb929fe70e9971a9065b441637216b",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "MIT",
@@ -1,6 +1,5 @@
1
1
  import { describe, it, expect, beforeAll, afterAll } from 'vitest';
2
- import { TestDatabase, isPoolHealthy } from './helpers/db-setup.js';
3
- import { assertLatestMigrationApplied } from './helpers/migration-verification.js';
2
+ import { TestDatabase, LATEST_MIGRATION_NAME, isPoolHealthy } from './helpers/db-setup.js';
4
3
  import { seedAdminCore } from '../../scripts/seed-admin-context.js';
5
4
  import { qualifyTable } from './helpers/test-db-config.js';
6
5
 
@@ -33,7 +32,11 @@ describe('DB Test Harness Bootstrap', () => {
33
32
 
34
33
  it('is at latest migration (schema ready)', async () =>
35
34
  db.withTransaction(async client => {
36
- await assertLatestMigrationApplied(client);
35
+ const result = await client.query(
36
+ `SELECT 1 FROM ${qualifyTable('migration')} WHERE name = $1 LIMIT 1`,
37
+ [LATEST_MIGRATION_NAME],
38
+ );
39
+ expect(result.rowCount).toBe(1);
37
40
  }));
38
41
 
39
42
  it('has admin business after seeding', async () =>
@@ -5,6 +5,8 @@ import { debugLog, emitMetrics } from './diagnostics.js';
5
5
  import { TestDbMigrationError } from './errors.js';
6
6
  import type { Pool } from 'pg';
7
7
 
8
+ export { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
9
+
8
10
  export async function runMigrationsIfNeeded(pgPool: Pool): Promise<void> {
9
11
  let needToRun = false;
10
12
  const client = await pgPool.connect();
@@ -1,5 +1,5 @@
1
1
  export { connectTestDb, closeTestDb } from './db-connection.js';
2
- export { runMigrationsIfNeeded } from './db-migrations.js';
2
+ export { runMigrationsIfNeeded, LATEST_MIGRATION_NAME } from './db-migrations.js';
3
3
  export { seedAdminOnce } from './db-fixtures.js';
4
4
  export { withTestTransaction, withConcurrentTransactions } from './test-transaction.js';
5
5
  export { isPoolHealthy, debugLog, emitMetrics } from './diagnostics.js';
@@ -1,6 +1,6 @@
1
1
  import type { Pool } from 'pg';
2
2
  import { connectTestDb, closeTestDb } from './db-connection.js';
3
- import { runMigrationsIfNeeded } from './db-migrations.js';
3
+ import { runMigrationsIfNeeded, LATEST_MIGRATION_NAME } from './db-migrations.js';
4
4
  import { seedAdminOnce } from './db-fixtures.js';
5
5
  import { withTestTransaction } from './test-transaction.js';
6
6
 
@@ -37,3 +37,5 @@ export class TestDatabase {
37
37
  this.pool = null;
38
38
  }
39
39
  }
40
+
41
+ export { LATEST_MIGRATION_NAME };
@@ -32,8 +32,6 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
32
32
  let db: TestDatabase;
33
33
 
34
34
  beforeAll(async () => {
35
- // stale for 0.1 sec to avoid test flakiness
36
- await new Promise(resolve => setTimeout(resolve, 100));
37
35
  db = new TestDatabase();
38
36
  await db.connect();
39
37
  await db.ensureLatestSchema();
@@ -1,18 +0,0 @@
1
- import { Client, Pool, PoolClient } from 'pg';
2
- import { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
3
- export { LATEST_MIGRATION_NAME };
4
- interface MigrationCheckResult {
5
- isLatest: boolean;
6
- latestMigrationName: string | undefined;
7
- errorMessage?: string;
8
- }
9
- /**
10
- * Check if the latest migration has been applied to the database.
11
- * Returns result object with status - does not throw.
12
- */
13
- export declare function checkLatestMigration(clientOrPool: Pool | PoolClient | Client, schema?: string): Promise<MigrationCheckResult>;
14
- /**
15
- * Assert that the latest migration has been applied.
16
- * Throws an error with helpful message if not.
17
- */
18
- export declare function assertLatestMigrationApplied(clientOrPool: Pool | PoolClient | Client, schema?: string): Promise<void>;
@@ -1,55 +0,0 @@
1
- import { Pool } from 'pg';
2
- import { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
3
- export { LATEST_MIGRATION_NAME };
4
- /**
5
- * Check if the latest migration has been applied to the database.
6
- * Returns result object with status - does not throw.
7
- */
8
- export async function checkLatestMigration(clientOrPool, schema = 'accounter_schema') {
9
- let client;
10
- let shouldRelease = false;
11
- if (clientOrPool instanceof Pool) {
12
- const poolClient = await clientOrPool.connect();
13
- client = poolClient;
14
- shouldRelease = true;
15
- }
16
- else {
17
- // It's already a Client or PoolClient
18
- client = clientOrPool;
19
- }
20
- try {
21
- const result = await client.query(`SELECT 1 FROM ${schema}.migration WHERE name = $1 LIMIT 1`, [LATEST_MIGRATION_NAME]);
22
- const isLatest = result.rowCount === 1;
23
- return {
24
- isLatest,
25
- latestMigrationName: LATEST_MIGRATION_NAME,
26
- errorMessage: isLatest
27
- ? undefined
28
- : `Latest migration "${LATEST_MIGRATION_NAME}" not found in database`,
29
- };
30
- }
31
- catch (error) {
32
- return {
33
- isLatest: false,
34
- latestMigrationName: LATEST_MIGRATION_NAME,
35
- errorMessage: `Failed to check migrations: ${error instanceof Error ? error.message : String(error)}`,
36
- };
37
- }
38
- finally {
39
- if (shouldRelease && 'release' in client) {
40
- await client.release();
41
- }
42
- }
43
- }
44
- /**
45
- * Assert that the latest migration has been applied.
46
- * Throws an error with helpful message if not.
47
- */
48
- export async function assertLatestMigrationApplied(clientOrPool, schema = 'accounter_schema') {
49
- const result = await checkLatestMigration(clientOrPool, schema);
50
- if (!result.isLatest) {
51
- throw new Error(result.errorMessage ||
52
- `Migration check failed for ${result.latestMigrationName}. Run: yarn workspace @accounter/migrations migration:run`);
53
- }
54
- }
55
- //# sourceMappingURL=migration-verification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-verification.js","sourceRoot":"","sources":["../../../../../src/__tests__/helpers/migration-verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAc,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAQjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAwC,EACxC,MAAM,GAAG,kBAAkB;IAE3B,IAAI,MAA2B,CAAC;IAChC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,YAAY,YAAY,IAAI,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,GAAG,UAAU,CAAC;QACpB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,iBAAiB,MAAM,oCAAoC,EAC3D,CAAC,qBAAqB,CAAC,CACxB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;QACvC,OAAO;YACL,QAAQ;YACR,mBAAmB,EAAE,qBAAqB;YAC1C,YAAY,EAAE,QAAQ;gBACpB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,qBAAqB,qBAAqB,yBAAyB;SACxE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,mBAAmB,EAAE,qBAAqB;YAC1C,YAAY,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACtG,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,aAAa,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,YAAwC,EACxC,MAAM,GAAG,kBAAkB;IAE3B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,YAAY;YACjB,8BAA8B,MAAM,CAAC,mBAAmB,2DAA2D,CACtH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,74 +0,0 @@
1
- import { Client, Pool, PoolClient } from 'pg';
2
- import { LATEST_MIGRATION_NAME } from '../../../../migrations/src/run-pg-migrations.js';
3
-
4
- export { LATEST_MIGRATION_NAME };
5
-
6
- interface MigrationCheckResult {
7
- isLatest: boolean;
8
- latestMigrationName: string | undefined;
9
- errorMessage?: string;
10
- }
11
-
12
- /**
13
- * Check if the latest migration has been applied to the database.
14
- * Returns result object with status - does not throw.
15
- */
16
- export async function checkLatestMigration(
17
- clientOrPool: Pool | PoolClient | Client,
18
- schema = 'accounter_schema',
19
- ): Promise<MigrationCheckResult> {
20
- let client: PoolClient | Client;
21
- let shouldRelease = false;
22
-
23
- if (clientOrPool instanceof Pool) {
24
- const poolClient = await clientOrPool.connect();
25
- client = poolClient;
26
- shouldRelease = true;
27
- } else {
28
- // It's already a Client or PoolClient
29
- client = clientOrPool;
30
- }
31
-
32
- try {
33
- const result = await client.query(
34
- `SELECT 1 FROM ${schema}.migration WHERE name = $1 LIMIT 1`,
35
- [LATEST_MIGRATION_NAME],
36
- );
37
-
38
- const isLatest = result.rowCount === 1;
39
- return {
40
- isLatest,
41
- latestMigrationName: LATEST_MIGRATION_NAME,
42
- errorMessage: isLatest
43
- ? undefined
44
- : `Latest migration "${LATEST_MIGRATION_NAME}" not found in database`,
45
- };
46
- } catch (error) {
47
- return {
48
- isLatest: false,
49
- latestMigrationName: LATEST_MIGRATION_NAME,
50
- errorMessage: `Failed to check migrations: ${error instanceof Error ? error.message : String(error)}`,
51
- };
52
- } finally {
53
- if (shouldRelease && 'release' in client) {
54
- await client.release();
55
- }
56
- }
57
- }
58
-
59
- /**
60
- * Assert that the latest migration has been applied.
61
- * Throws an error with helpful message if not.
62
- */
63
- export async function assertLatestMigrationApplied(
64
- clientOrPool: Pool | PoolClient | Client,
65
- schema = 'accounter_schema',
66
- ): Promise<void> {
67
- const result = await checkLatestMigration(clientOrPool, schema);
68
- if (!result.isLatest) {
69
- throw new Error(
70
- result.errorMessage ||
71
- `Migration check failed for ${result.latestMigrationName}. Run: yarn workspace @accounter/migrations migration:run`,
72
- );
73
- }
74
- }