@critical-path/core 0.36.0 → 0.37.0
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 +1 -1
- package/dist/domain/authorization.d.ts.map +1 -1
- package/dist/domain/authorization.js +10 -7
- package/dist/domain/authorization.js.map +1 -1
- package/dist/engine/index.d.ts +6 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +28 -2
- package/dist/engine/index.js.map +1 -1
- package/dist/schemas/index.d.ts +42 -12
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +4 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/store/firebase.d.ts +2 -2
- package/dist/store/firebase.d.ts.map +1 -1
- package/dist/store/firebase.js +4 -2
- package/dist/store/firebase.js.map +1 -1
- package/dist/store/index.d.ts +7 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +3 -2
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite.d.ts +2 -2
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +5 -3
- package/dist/store/sqlite.js.map +1 -1
- package/dist/testing/conformance.d.ts.map +1 -1
- package/dist/testing/conformance.js +9 -0
- package/dist/testing/conformance.js.map +1 -1
- package/dist/types/index.d.ts +13 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -1
- package/CHANGELOG.md +0 -593
- package/dist/deliverables.test.d.ts +0 -2
- package/dist/deliverables.test.d.ts.map +0 -1
- package/dist/deliverables.test.js +0 -232
- package/dist/deliverables.test.js.map +0 -1
- package/dist/domain/calendar.test.d.ts +0 -2
- package/dist/domain/calendar.test.d.ts.map +0 -1
- package/dist/domain/calendar.test.js +0 -181
- package/dist/domain/calendar.test.js.map +0 -1
- package/dist/domain/cpm.test.d.ts +0 -2
- package/dist/domain/cpm.test.d.ts.map +0 -1
- package/dist/domain/cpm.test.js +0 -166
- package/dist/domain/cpm.test.js.map +0 -1
- package/dist/domain/ddd.test.d.ts +0 -2
- package/dist/domain/ddd.test.d.ts.map +0 -1
- package/dist/domain/ddd.test.js +0 -349
- package/dist/domain/ddd.test.js.map +0 -1
- package/dist/domain/ladder.test.d.ts +0 -2
- package/dist/domain/ladder.test.d.ts.map +0 -1
- package/dist/domain/ladder.test.js +0 -213
- package/dist/domain/ladder.test.js.map +0 -1
- package/dist/domain/metrics.test.d.ts +0 -2
- package/dist/domain/metrics.test.d.ts.map +0 -1
- package/dist/domain/metrics.test.js +0 -252
- package/dist/domain/metrics.test.js.map +0 -1
- package/dist/domain/task-duration.test.d.ts +0 -2
- package/dist/domain/task-duration.test.d.ts.map +0 -1
- package/dist/domain/task-duration.test.js +0 -307
- package/dist/domain/task-duration.test.js.map +0 -1
- package/dist/domain/workload.test.d.ts +0 -2
- package/dist/domain/workload.test.d.ts.map +0 -1
- package/dist/domain/workload.test.js +0 -261
- package/dist/domain/workload.test.js.map +0 -1
- package/dist/engine/actor.test.d.ts +0 -2
- package/dist/engine/actor.test.d.ts.map +0 -1
- package/dist/engine/actor.test.js +0 -54
- package/dist/engine/actor.test.js.map +0 -1
- package/dist/engine/authorization.test.d.ts +0 -2
- package/dist/engine/authorization.test.d.ts.map +0 -1
- package/dist/engine/authorization.test.js +0 -154
- package/dist/engine/authorization.test.js.map +0 -1
- package/dist/engine/cascade.test.d.ts +0 -2
- package/dist/engine/cascade.test.d.ts.map +0 -1
- package/dist/engine/cascade.test.js +0 -99
- package/dist/engine/cascade.test.js.map +0 -1
- package/dist/engine/config.test.d.ts +0 -2
- package/dist/engine/config.test.d.ts.map +0 -1
- package/dist/engine/config.test.js +0 -46
- package/dist/engine/config.test.js.map +0 -1
- package/dist/engine/entity-events.test.d.ts +0 -2
- package/dist/engine/entity-events.test.d.ts.map +0 -1
- package/dist/engine/entity-events.test.js +0 -61
- package/dist/engine/entity-events.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -429
- package/dist/index.test.js.map +0 -1
- package/dist/plugins/plugins.test.d.ts +0 -2
- package/dist/plugins/plugins.test.d.ts.map +0 -1
- package/dist/plugins/plugins.test.js +0 -137
- package/dist/plugins/plugins.test.js.map +0 -1
- package/dist/schemas/schemas.test.d.ts +0 -2
- package/dist/schemas/schemas.test.d.ts.map +0 -1
- package/dist/schemas/schemas.test.js +0 -58
- package/dist/schemas/schemas.test.js.map +0 -1
- package/dist/status.test.d.ts +0 -2
- package/dist/status.test.d.ts.map +0 -1
- package/dist/status.test.js +0 -295
- package/dist/status.test.js.map +0 -1
- package/dist/storage/storage.test.d.ts +0 -2
- package/dist/storage/storage.test.d.ts.map +0 -1
- package/dist/storage/storage.test.js +0 -236
- package/dist/storage/storage.test.js.map +0 -1
- package/dist/storage/upload-limits.test.d.ts +0 -2
- package/dist/storage/upload-limits.test.d.ts.map +0 -1
- package/dist/storage/upload-limits.test.js +0 -31
- package/dist/storage/upload-limits.test.js.map +0 -1
- package/dist/store/conformance.test.d.ts +0 -2
- package/dist/store/conformance.test.d.ts.map +0 -1
- package/dist/store/conformance.test.js +0 -15
- package/dist/store/conformance.test.js.map +0 -1
- package/dist/store/firebase.test.d.ts +0 -2
- package/dist/store/firebase.test.d.ts.map +0 -1
- package/dist/store/firebase.test.js +0 -103
- package/dist/store/firebase.test.js.map +0 -1
- package/dist/store/query.test.d.ts +0 -2
- package/dist/store/query.test.d.ts.map +0 -1
- package/dist/store/query.test.js +0 -89
- package/dist/store/query.test.js.map +0 -1
- package/dist/store/sqlite.test.d.ts +0 -2
- package/dist/store/sqlite.test.d.ts.map +0 -1
- package/dist/store/sqlite.test.js +0 -177
- package/dist/store/sqlite.test.js.map +0 -1
- package/dist/task-state.test.d.ts +0 -2
- package/dist/task-state.test.d.ts.map +0 -1
- package/dist/task-state.test.js +0 -423
- package/dist/task-state.test.js.map +0 -1
- package/dist/use-case-validation.test.d.ts +0 -2
- package/dist/use-case-validation.test.d.ts.map +0 -1
- package/dist/use-case-validation.test.js +0 -281
- package/dist/use-case-validation.test.js.map +0 -1
- package/dist/utils/fractional-index.test.d.ts +0 -2
- package/dist/utils/fractional-index.test.d.ts.map +0 -1
- package/dist/utils/fractional-index.test.js +0 -182
- package/dist/utils/fractional-index.test.js.map +0 -1
- package/dist/utils/key.test.d.ts +0 -2
- package/dist/utils/key.test.d.ts.map +0 -1
- package/dist/utils/key.test.js +0 -65
- package/dist/utils/key.test.js.map +0 -1
- package/dist/utils/mentions.test.d.ts +0 -2
- package/dist/utils/mentions.test.d.ts.map +0 -1
- package/dist/utils/mentions.test.js +0 -114
- package/dist/utils/mentions.test.js.map +0 -1
- package/dist/webhooks/webhooks.test.d.ts +0 -2
- package/dist/webhooks/webhooks.test.d.ts.map +0 -1
- package/dist/webhooks/webhooks.test.js +0 -154
- package/dist/webhooks/webhooks.test.js.map +0 -1
- package/src/deliverables.test.ts +0 -284
- package/src/domain/authorization.ts +0 -82
- package/src/domain/calendar.test.ts +0 -216
- package/src/domain/calendar.ts +0 -502
- package/src/domain/cpm.test.ts +0 -189
- package/src/domain/cpm.ts +0 -258
- package/src/domain/custom-fields.ts +0 -172
- package/src/domain/ddd.test.ts +0 -442
- package/src/domain/entities.ts +0 -798
- package/src/domain/errors.ts +0 -38
- package/src/domain/events.ts +0 -369
- package/src/domain/graph.ts +0 -70
- package/src/domain/index.ts +0 -12
- package/src/domain/ladder.test.ts +0 -251
- package/src/domain/ladder.ts +0 -474
- package/src/domain/metrics.test.ts +0 -288
- package/src/domain/metrics.ts +0 -497
- package/src/domain/task-duration.test.ts +0 -354
- package/src/domain/workload.test.ts +0 -311
- package/src/domain/workload.ts +0 -457
- package/src/engine/actor.test.ts +0 -63
- package/src/engine/authorization.test.ts +0 -199
- package/src/engine/cascade.test.ts +0 -121
- package/src/engine/config.test.ts +0 -51
- package/src/engine/entity-events.test.ts +0 -67
- package/src/engine/index.ts +0 -2495
- package/src/index.test.ts +0 -514
- package/src/index.ts +0 -9
- package/src/plugins/index.ts +0 -103
- package/src/plugins/plugins.test.ts +0 -161
- package/src/schemas/index.ts +0 -402
- package/src/schemas/schemas.test.ts +0 -116
- package/src/status.test.ts +0 -354
- package/src/storage/file-storage.ts +0 -200
- package/src/storage/firebase-storage.ts +0 -209
- package/src/storage/index.ts +0 -3
- package/src/storage/s3.ts +0 -151
- package/src/storage/storage.test.ts +0 -274
- package/src/storage/upload-limits.test.ts +0 -41
- package/src/store/conformance.test.ts +0 -15
- package/src/store/firebase.test.ts +0 -131
- package/src/store/firebase.ts +0 -658
- package/src/store/index.ts +0 -623
- package/src/store/query.test.ts +0 -110
- package/src/store/query.ts +0 -113
- package/src/store/sqlite.test.ts +0 -218
- package/src/store/sqlite.ts +0 -1480
- package/src/task-state.test.ts +0 -506
- package/src/testing/conformance.ts +0 -319
- package/src/testing/index.ts +0 -1
- package/src/types/index.ts +0 -871
- package/src/use-case-validation.test.ts +0 -324
- package/src/utils/fractional-index.test.ts +0 -228
- package/src/utils/fractional-index.ts +0 -254
- package/src/utils/index.ts +0 -7
- package/src/utils/key.test.ts +0 -76
- package/src/utils/key.ts +0 -62
- package/src/utils/mentions.test.ts +0 -132
- package/src/utils/mentions.ts +0 -131
- package/src/utils/status.ts +0 -419
- package/src/utils/workflow.ts +0 -306
- package/src/webhooks/dispatcher.ts +0 -190
- package/src/webhooks/index.ts +0 -2
- package/src/webhooks/signature.ts +0 -57
- package/src/webhooks/webhooks.test.ts +0 -201
- package/tsconfig.json +0 -8
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/storage/storage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload-limits.test.d.ts","sourceRoot":"","sources":["../../src/storage/upload-limits.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { CriticalPathEngine, InMemoryFileStore, ValidationError } from '../index.js';
|
|
3
|
-
async function setup() {
|
|
4
|
-
const engine = new CriticalPathEngine({
|
|
5
|
-
fileStorage: new InMemoryFileStore(),
|
|
6
|
-
uploads: { maxBytes: 10, allowedMimeTypes: ['image/*', 'application/pdf'] }
|
|
7
|
-
});
|
|
8
|
-
const project = await engine.createProject({ name: 'Limits' });
|
|
9
|
-
return { engine, project };
|
|
10
|
-
}
|
|
11
|
-
describe('upload limits', () => {
|
|
12
|
-
it('enforces the decoded size of direct uploads', async () => {
|
|
13
|
-
const { engine, project } = await setup();
|
|
14
|
-
await expect(engine.uploadAttachmentFile({ projectId: project.id, filename: 'ok.png', mimeType: 'image/png', data: new Uint8Array(10), uploaderId: 'u' })).resolves.toMatchObject({ sizeBytes: 10 });
|
|
15
|
-
// 16 base64 characters decode to 12 bytes
|
|
16
|
-
await expect(engine.uploadAttachmentFile({ projectId: project.id, filename: 'big.png', mimeType: 'image/png', data: 'AAAAAAAAAAAAAAAA', encoding: 'base64', uploaderId: 'u' })).rejects.toThrow(/maximum is 10 bytes/);
|
|
17
|
-
});
|
|
18
|
-
it('allows MIME types by exact match or wildcard', async () => {
|
|
19
|
-
const { engine, project } = await setup();
|
|
20
|
-
const upload = (mimeType) => engine.uploadAttachmentFile({ projectId: project.id, filename: 'f', mimeType, data: new Uint8Array(1), uploaderId: 'u' });
|
|
21
|
-
await expect(upload('image/webp')).resolves.toBeDefined();
|
|
22
|
-
await expect(upload('application/pdf; charset=binary')).resolves.toBeDefined();
|
|
23
|
-
await expect(upload('text/html')).rejects.toThrow(ValidationError);
|
|
24
|
-
});
|
|
25
|
-
it('applies to presigned uploads and registered attachments', async () => {
|
|
26
|
-
const { engine, project } = await setup();
|
|
27
|
-
await expect(engine.getPresignedAttachmentUploadUrl({ projectId: project.id, filename: 'x.html', contentType: 'text/html' })).rejects.toThrow(/not allowed/);
|
|
28
|
-
await expect(engine.createAttachment({ projectId: project.id, filename: 'x', url: 'https://e.com/x', mimeType: 'image/png', sizeBytes: 11, uploaderId: 'u' })).rejects.toThrow(/maximum/);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=upload-limits.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload-limits.test.js","sourceRoot":"","sources":["../../src/storage/upload-limits.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.test.d.ts","sourceRoot":"","sources":["../../src/store/conformance.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { runStorageAdapterConformance } from '../testing/index.js';
|
|
3
|
-
import { InMemoryStore } from './index.js';
|
|
4
|
-
import { SQLiteStore } from './sqlite.js';
|
|
5
|
-
import { FirebaseStore, InMemoryFirestoreMock } from './firebase.js';
|
|
6
|
-
runStorageAdapterConformance({ name: 'InMemoryStore', createStore: () => new InMemoryStore(), describe, it, expect });
|
|
7
|
-
runStorageAdapterConformance({ name: 'SQLiteStore', createStore: () => new SQLiteStore({ filename: ':memory:' }), describe, it, expect });
|
|
8
|
-
runStorageAdapterConformance({
|
|
9
|
-
name: 'FirebaseStore',
|
|
10
|
-
createStore: () => new FirebaseStore({ db: new InMemoryFirestoreMock() }),
|
|
11
|
-
describe,
|
|
12
|
-
it,
|
|
13
|
-
expect
|
|
14
|
-
});
|
|
15
|
-
//# sourceMappingURL=conformance.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.test.js","sourceRoot":"","sources":["../../src/store/conformance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAErE,4BAA4B,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtH,4BAA4B,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1I,4BAA4B,CAAC;IAC3B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC;IACzE,QAAQ;IACR,EAAE;IACF,MAAM;CACP,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.test.d.ts","sourceRoot":"","sources":["../../src/store/firebase.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { FirebaseStore, InMemoryFirestoreMock } from './firebase.js';
|
|
3
|
-
describe('FirebaseStore', () => {
|
|
4
|
-
let store;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
store = new FirebaseStore({ db: new InMemoryFirestoreMock() });
|
|
7
|
-
});
|
|
8
|
-
it('should throw an error if db is missing in config', () => {
|
|
9
|
-
expect(() => new FirebaseStore({})).toThrow('FirebaseStore requires a valid Firestore db instance');
|
|
10
|
-
});
|
|
11
|
-
it('should create and retrieve projects in FirebaseStore', async () => {
|
|
12
|
-
const project = await store.createProject({
|
|
13
|
-
key: 'FIRE',
|
|
14
|
-
name: 'Firebase Test Project',
|
|
15
|
-
description: 'Testing Firebase Firestore adapter'
|
|
16
|
-
});
|
|
17
|
-
expect(project.id).toBeDefined();
|
|
18
|
-
expect(project.name).toBe('Firebase Test Project');
|
|
19
|
-
const fetched = await store.getProject(project.id);
|
|
20
|
-
expect(fetched).not.toBeNull();
|
|
21
|
-
expect(fetched?.key).toBe('FIRE');
|
|
22
|
-
const all = await store.getProjects();
|
|
23
|
-
expect(all).toHaveLength(1);
|
|
24
|
-
});
|
|
25
|
-
it('should create, update, and delete tasks in FirebaseStore', async () => {
|
|
26
|
-
const project = await store.createProject({ key: 'P1', name: 'Proj 1' });
|
|
27
|
-
const task = await store.createTask({
|
|
28
|
-
projectId: project.id,
|
|
29
|
-
title: 'Firebase Task 1',
|
|
30
|
-
status: 'todo',
|
|
31
|
-
priority: 'urgent'
|
|
32
|
-
});
|
|
33
|
-
expect(task.id).toBeDefined();
|
|
34
|
-
expect(task.priority).toBe('urgent');
|
|
35
|
-
const updated = await store.updateTask(task.id, { status: 'done' });
|
|
36
|
-
expect(updated?.status).toBe('done');
|
|
37
|
-
const tasks = await store.getTasks(project.id);
|
|
38
|
-
expect(tasks).toHaveLength(1);
|
|
39
|
-
const deleted = await store.deleteTask(task.id);
|
|
40
|
-
expect(deleted).toBe(true);
|
|
41
|
-
const remaining = await store.getTasks(project.id);
|
|
42
|
-
expect(remaining).toHaveLength(0);
|
|
43
|
-
});
|
|
44
|
-
it('should create, update, and delete workflows in FirebaseStore', async () => {
|
|
45
|
-
const workflow = await store.createWorkflow({
|
|
46
|
-
name: 'Firebase Workflow',
|
|
47
|
-
isDefault: false,
|
|
48
|
-
defaultStatusKey: 'backlog',
|
|
49
|
-
statuses: [{ key: 'backlog', label: 'Backlog', category: 'not_started' }],
|
|
50
|
-
transitions: []
|
|
51
|
-
});
|
|
52
|
-
expect(workflow.id).toBeDefined();
|
|
53
|
-
const fetched = await store.getWorkflow(workflow.id);
|
|
54
|
-
expect(fetched?.name).toBe('Firebase Workflow');
|
|
55
|
-
const updated = await store.updateWorkflow(workflow.id, { isDefault: true });
|
|
56
|
-
expect(updated?.isDefault).toBe(true);
|
|
57
|
-
const deleted = await store.deleteWorkflow(workflow.id);
|
|
58
|
-
expect(deleted).toBe(true);
|
|
59
|
-
});
|
|
60
|
-
it('should sanitize undefined properties from documents', async () => {
|
|
61
|
-
const project = await store.createProject({
|
|
62
|
-
key: 'UNDEF',
|
|
63
|
-
name: 'Undefined Test',
|
|
64
|
-
description: undefined,
|
|
65
|
-
ownerId: undefined
|
|
66
|
-
});
|
|
67
|
-
const doc = await store.getProject(project.id);
|
|
68
|
-
expect(doc).toBeDefined();
|
|
69
|
-
expect(doc?.name).toBe('Undefined Test');
|
|
70
|
-
expect('description' in doc).toBe(false);
|
|
71
|
-
});
|
|
72
|
-
it('should retrieve dependencies when queried as taskId or dependsOnTaskId', async () => {
|
|
73
|
-
const dep = await store.addDependency({
|
|
74
|
-
taskId: 'task-downstream',
|
|
75
|
-
dependsOnTaskId: 'task-upstream',
|
|
76
|
-
type: 'blocking'
|
|
77
|
-
});
|
|
78
|
-
const byDownstream = await store.getDependencies('task-downstream');
|
|
79
|
-
expect(byDownstream).toHaveLength(1);
|
|
80
|
-
expect(byDownstream[0].id).toBe(dep.id);
|
|
81
|
-
const byUpstream = await store.getDependencies('task-upstream');
|
|
82
|
-
expect(byUpstream).toHaveLength(1);
|
|
83
|
-
expect(byUpstream[0].id).toBe(dep.id);
|
|
84
|
-
});
|
|
85
|
-
it('should create, update, clear fields on, and delete webhooks', async () => {
|
|
86
|
-
const created = await store.addWebhook({
|
|
87
|
-
name: 'Hook',
|
|
88
|
-
url: 'https://hooks.example.com/x',
|
|
89
|
-
events: ['task.created'],
|
|
90
|
-
secret: 'whsec_test',
|
|
91
|
-
active: true,
|
|
92
|
-
tenantId: 'acme'
|
|
93
|
-
});
|
|
94
|
-
expect(await store.getWebhook(created.id)).toMatchObject({ name: 'Hook', tenantId: 'acme' });
|
|
95
|
-
const updated = await store.updateWebhook(created.id, { events: ['*'], secret: undefined });
|
|
96
|
-
expect(updated?.events).toEqual(['*']);
|
|
97
|
-
expect((await store.getWebhook(created.id))?.secret).toBeUndefined();
|
|
98
|
-
expect(await store.deleteWebhook(created.id)).toBe(true);
|
|
99
|
-
expect(await store.getWebhook(created.id)).toBeNull();
|
|
100
|
-
expect(await store.deleteWebhook(created.id)).toBe(false);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
//# sourceMappingURL=firebase.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.test.js","sourceRoot":"","sources":["../../src/store/firebase.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAErE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,KAAoB,CAAC;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,EAAS,CAAC,CAAC,CAAC,OAAO,CAChD,sDAAsD,CACvD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACxC,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,oCAAoC;SAClD,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;YAC1C,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,SAAS;YAC3B,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACzE,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACxC,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,IAAK,GAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACpC,MAAM,EAAE,iBAAiB;YACzB,eAAe,EAAE,eAAe;YAChC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YACrC,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,6BAA6B;YAClC,MAAM,EAAE,CAAC,cAAc,CAAC;YACxB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAErE,MAAM,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../../src/store/query.test.ts"],"names":[],"mappings":""}
|
package/dist/store/query.test.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { CriticalPathEngine, InMemoryStore, SQLiteStore, FirebaseStore, InMemoryFirestoreMock, ValidationError, createRolePolicy, MAX_PAGE_SIZE } from '../index.js';
|
|
3
|
-
const stores = [
|
|
4
|
-
['InMemoryStore', () => new InMemoryStore()],
|
|
5
|
-
['SQLiteStore', () => new SQLiteStore({ filename: ':memory:' })],
|
|
6
|
-
['FirebaseStore', () => new FirebaseStore({ db: new InMemoryFirestoreMock() })]
|
|
7
|
-
];
|
|
8
|
-
describe.each(stores)('task and activity queries (%s)', (_name, makeStore) => {
|
|
9
|
-
async function setup() {
|
|
10
|
-
const engine = new CriticalPathEngine({ store: makeStore() });
|
|
11
|
-
const project = await engine.createProject({ name: 'Query' });
|
|
12
|
-
const other = await engine.createProject({ name: 'Other' });
|
|
13
|
-
const sprint = await engine.createIteration({ projectId: project.id, name: 'S1', status: 'active' });
|
|
14
|
-
const parent = await engine.createTask({ projectId: project.id, title: 'Parent', status: 'in_progress', priority: 'high', assigneeId: 'ana' });
|
|
15
|
-
const child = await engine.createTask({ projectId: project.id, title: 'Child', parentId: parent.id, status: 'todo', priority: 'low', iterationId: sprint.id });
|
|
16
|
-
const shared = await engine.createTask({
|
|
17
|
-
projectId: project.id,
|
|
18
|
-
title: 'Shared',
|
|
19
|
-
status: 'done',
|
|
20
|
-
priority: 'high',
|
|
21
|
-
assignees: [{ id: 'ana', type: 'user' }, { id: 'ben', type: 'user' }]
|
|
22
|
-
});
|
|
23
|
-
const elsewhere = await engine.createTask({ projectId: other.id, title: 'Elsewhere', assigneeId: 'ana' });
|
|
24
|
-
return { engine, project, other, sprint, parent, child, shared, elsewhere };
|
|
25
|
-
}
|
|
26
|
-
const titles = (tasks) => tasks.map((t) => t.title).sort();
|
|
27
|
-
it('filters by status, priority, assignee (including assignees), iteration and parent', async () => {
|
|
28
|
-
const { engine, project, sprint, parent } = await setup();
|
|
29
|
-
const q = (query) => engine.queryTasks({ projectId: project.id, ...query }).then((p) => titles(p.items));
|
|
30
|
-
expect(await q({ status: ['todo', 'done'] })).toEqual(['Child', 'Shared']);
|
|
31
|
-
expect(await q({ priority: ['high'] })).toEqual(['Parent', 'Shared']);
|
|
32
|
-
expect(await q({ assigneeId: 'ana' })).toEqual(['Parent', 'Shared']);
|
|
33
|
-
expect(await q({ assigneeId: 'ben' })).toEqual(['Shared']);
|
|
34
|
-
expect(await q({ iterationId: sprint.id })).toEqual(['Child']);
|
|
35
|
-
expect(await q({ parentId: parent.id })).toEqual(['Child']);
|
|
36
|
-
expect(await q({ parentId: null })).toEqual(['Parent', 'Shared']);
|
|
37
|
-
expect(titles((await engine.queryTasks({ assigneeId: 'ana' })).items)).toEqual(['Elsewhere', 'Parent', 'Shared']);
|
|
38
|
-
});
|
|
39
|
-
it('pages through every task exactly once, oldest first', async () => {
|
|
40
|
-
const { engine, project } = await setup();
|
|
41
|
-
for (let i = 0; i < 12; i++)
|
|
42
|
-
await engine.createTask({ projectId: project.id, title: `Bulk ${i}` });
|
|
43
|
-
const seen = [];
|
|
44
|
-
let cursor;
|
|
45
|
-
do {
|
|
46
|
-
const page = await engine.queryTasks({ projectId: project.id, limit: 5, cursor });
|
|
47
|
-
expect(page.items.length).toBeLessThanOrEqual(5);
|
|
48
|
-
seen.push(...page.items);
|
|
49
|
-
cursor = page.nextCursor;
|
|
50
|
-
} while (cursor);
|
|
51
|
-
expect(seen).toHaveLength(15);
|
|
52
|
-
expect(new Set(seen.map((t) => t.id)).size).toBe(15);
|
|
53
|
-
const keys = seen.map((t) => `${t.createdAt}|${t.id}`);
|
|
54
|
-
expect([...keys].sort()).toEqual(keys);
|
|
55
|
-
});
|
|
56
|
-
it('pages the activity feed newest first', async () => {
|
|
57
|
-
const { engine, project } = await setup();
|
|
58
|
-
const all = (await engine.queryActivities({ projectId: project.id, limit: MAX_PAGE_SIZE })).items;
|
|
59
|
-
expect(all.length).toBeGreaterThan(3);
|
|
60
|
-
const keys = all.map((a) => `${a.createdAt}|${a.id}`);
|
|
61
|
-
expect([...keys].sort().reverse()).toEqual(keys);
|
|
62
|
-
const first = await engine.queryActivities({ projectId: project.id, limit: 2 });
|
|
63
|
-
const second = await engine.queryActivities({ projectId: project.id, limit: 2, cursor: first.nextCursor });
|
|
64
|
-
expect([...first.items, ...second.items].map((a) => a.id)).toEqual(all.slice(0, 4).map((a) => a.id));
|
|
65
|
-
});
|
|
66
|
-
it('rejects malformed cursors and clamps page sizes', async () => {
|
|
67
|
-
const { engine, project } = await setup();
|
|
68
|
-
await expect(engine.queryTasks({ projectId: project.id, cursor: 'not-a-cursor' })).rejects.toThrow(ValidationError);
|
|
69
|
-
expect((await engine.queryTasks({ projectId: project.id, limit: 0 })).items).toHaveLength(1);
|
|
70
|
-
expect((await engine.queryTasks({ projectId: project.id, limit: 10_000 })).items).toHaveLength(3);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
describe('query authorization', () => {
|
|
74
|
-
it('limits cross-project queries and activity feeds to readable projects', async () => {
|
|
75
|
-
const engine = new CriticalPathEngine({ authorize: createRolePolicy() });
|
|
76
|
-
const mine = await engine.createProject({ name: 'Mine', members: [{ userId: 'ana', role: 'viewer' }] });
|
|
77
|
-
const secret = await engine.createProject({ name: 'Secret' });
|
|
78
|
-
await engine.createTask({ projectId: mine.id, title: 'Visible' });
|
|
79
|
-
await engine.createTask({ projectId: secret.id, title: 'Hidden' });
|
|
80
|
-
const ana = engine.withActor({ userId: 'ana' });
|
|
81
|
-
expect((await ana.queryTasks()).items.map((t) => t.title)).toEqual(['Visible']);
|
|
82
|
-
expect((await ana.queryTasks({ projectId: secret.id })).items).toEqual([]);
|
|
83
|
-
expect((await ana.queryTasks({ projectIds: [mine.id, secret.id] })).items.map((t) => t.title)).toEqual(['Visible']);
|
|
84
|
-
const feed = (await ana.queryActivities()).items;
|
|
85
|
-
expect(feed.length).toBeGreaterThan(0);
|
|
86
|
-
expect(feed.every((a) => a.projectId === mine.id)).toBe(true);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=query.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.js","sourceRoot":"","sources":["../../src/store/query.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.test.d.ts","sourceRoot":"","sources":["../../src/store/sqlite.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { execFileSync } from 'node:child_process';
|
|
3
|
-
import { existsSync } from 'node:fs';
|
|
4
|
-
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
5
|
-
import { SQLiteStore } from './sqlite.js';
|
|
6
|
-
describe('SQLiteStore', () => {
|
|
7
|
-
let store;
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
store = new SQLiteStore({ filename: ':memory:' });
|
|
10
|
-
});
|
|
11
|
-
it('should create and retrieve projects', async () => {
|
|
12
|
-
const project = await store.createProject({
|
|
13
|
-
key: 'SQLITE',
|
|
14
|
-
name: 'SQLite Test Project',
|
|
15
|
-
description: 'Testing SQLite adapter'
|
|
16
|
-
});
|
|
17
|
-
expect(project.id).toMatch(/^proj_/);
|
|
18
|
-
expect(project.name).toBe('SQLite Test Project');
|
|
19
|
-
const fetched = await store.getProject(project.id);
|
|
20
|
-
expect(fetched).not.toBeNull();
|
|
21
|
-
expect(fetched?.key).toBe('SQLITE');
|
|
22
|
-
const all = await store.getProjects();
|
|
23
|
-
expect(all).toHaveLength(1);
|
|
24
|
-
});
|
|
25
|
-
it('should create, update, filter, and delete tasks', async () => {
|
|
26
|
-
const project = await store.createProject({ key: 'P1', name: 'Proj 1' });
|
|
27
|
-
const task = await store.createTask({
|
|
28
|
-
projectId: project.id,
|
|
29
|
-
title: 'SQLite Task 1',
|
|
30
|
-
status: 'todo',
|
|
31
|
-
priority: 'high',
|
|
32
|
-
tags: ['sqlite', 'db']
|
|
33
|
-
});
|
|
34
|
-
expect(task.id).toMatch(/^task_/);
|
|
35
|
-
expect(task.priority).toBe('high');
|
|
36
|
-
expect(task.tags).toContain('sqlite');
|
|
37
|
-
const updated = await store.updateTask(task.id, {
|
|
38
|
-
status: 'in_progress',
|
|
39
|
-
isBlocked: true,
|
|
40
|
-
blockedReason: 'Waiting for SQLite lock'
|
|
41
|
-
});
|
|
42
|
-
expect(updated?.status).toBe('in_progress');
|
|
43
|
-
expect(updated?.isBlocked).toBe(true);
|
|
44
|
-
expect(updated?.blockedReason).toBe('Waiting for SQLite lock');
|
|
45
|
-
const fetchedTask = await store.getTask(task.id);
|
|
46
|
-
expect(fetchedTask?.isBlocked).toBe(true);
|
|
47
|
-
expect(fetchedTask?.blockedReason).toBe('Waiting for SQLite lock');
|
|
48
|
-
const unblocked = await store.updateTask(task.id, {
|
|
49
|
-
isBlocked: false,
|
|
50
|
-
blockedReason: null
|
|
51
|
-
});
|
|
52
|
-
expect(unblocked?.isBlocked).toBe(false);
|
|
53
|
-
const projectTasks = await store.getTasks(project.id);
|
|
54
|
-
expect(projectTasks).toHaveLength(1);
|
|
55
|
-
const deleted = await store.deleteTask(task.id);
|
|
56
|
-
expect(deleted).toBe(true);
|
|
57
|
-
const remaining = await store.getTasks(project.id);
|
|
58
|
-
expect(remaining).toHaveLength(0);
|
|
59
|
-
});
|
|
60
|
-
it('should handle comments, activities, and time tracking', async () => {
|
|
61
|
-
const comment = await store.addComment({
|
|
62
|
-
taskId: 'task_1',
|
|
63
|
-
authorId: 'user_1',
|
|
64
|
-
authorType: 'user',
|
|
65
|
-
content: 'Great work!'
|
|
66
|
-
});
|
|
67
|
-
expect(comment.id).toMatch(/^cmt_/);
|
|
68
|
-
expect(comment.authorType).toBe('user');
|
|
69
|
-
// Threaded reply
|
|
70
|
-
const reply = await store.addComment({
|
|
71
|
-
taskId: 'task_1',
|
|
72
|
-
authorId: 'agent_1',
|
|
73
|
-
authorType: 'agent',
|
|
74
|
-
parentId: comment.id,
|
|
75
|
-
content: 'I agree!'
|
|
76
|
-
});
|
|
77
|
-
expect(reply.parentId).toBe(comment.id);
|
|
78
|
-
expect(reply.authorType).toBe('agent');
|
|
79
|
-
const comments = await store.getComments('task_1');
|
|
80
|
-
expect(comments).toHaveLength(2);
|
|
81
|
-
const updatedComment = await store.updateComment(comment.id, {
|
|
82
|
-
content: 'Updated content',
|
|
83
|
-
mentions: ['planner', 'coordinator']
|
|
84
|
-
});
|
|
85
|
-
expect(updatedComment?.content).toBe('Updated content');
|
|
86
|
-
expect(updatedComment?.mentions).toEqual(['planner', 'coordinator']);
|
|
87
|
-
const fetchedComment = await store.getComment(comment.id);
|
|
88
|
-
expect(fetchedComment?.content).toBe('Updated content');
|
|
89
|
-
expect(fetchedComment?.mentions).toEqual(['planner', 'coordinator']);
|
|
90
|
-
const timeEntry = await store.logTime({
|
|
91
|
-
taskId: 'task_1',
|
|
92
|
-
userId: 'user_1',
|
|
93
|
-
hours: 2.5,
|
|
94
|
-
description: 'Code review'
|
|
95
|
-
});
|
|
96
|
-
expect(timeEntry.hours).toBe(2.5);
|
|
97
|
-
const entries = await store.getTimeEntries('task_1');
|
|
98
|
-
expect(entries).toHaveLength(1);
|
|
99
|
-
// Emoji reactions
|
|
100
|
-
const reactComment = await store.addReaction(comment.id, { emoji: '🔥', userId: 'user_2' });
|
|
101
|
-
expect(reactComment?.reactions).toHaveLength(1);
|
|
102
|
-
expect(reactComment?.reactions?.[0].emoji).toBe('🔥');
|
|
103
|
-
const fetchedWithReactions = await store.getComment(comment.id);
|
|
104
|
-
expect(fetchedWithReactions?.reactions).toHaveLength(1);
|
|
105
|
-
const unreactComment = await store.removeReaction(comment.id, { emoji: '🔥', userId: 'user_2' });
|
|
106
|
-
expect(unreactComment?.reactions).toHaveLength(0);
|
|
107
|
-
const deletedComment = await store.deleteComment(reply.id);
|
|
108
|
-
expect(deletedComment).toBe(true);
|
|
109
|
-
expect(await store.getComments('task_1')).toHaveLength(1);
|
|
110
|
-
});
|
|
111
|
-
it('should create, filter, retrieve, and delete attachments', async () => {
|
|
112
|
-
const attachment = await store.createAttachment({
|
|
113
|
-
filename: 'design-mockup.fig',
|
|
114
|
-
url: 'https://storage.example.com/design-mockup.fig',
|
|
115
|
-
storageKey: 'attachments/task_1/design-mockup.fig',
|
|
116
|
-
mimeType: 'application/octet-stream',
|
|
117
|
-
sizeBytes: 2048,
|
|
118
|
-
taskId: 'task_1',
|
|
119
|
-
projectId: 'proj_1',
|
|
120
|
-
uploaderId: 'user_1',
|
|
121
|
-
uploaderType: 'user'
|
|
122
|
-
});
|
|
123
|
-
expect(attachment.id).toMatch(/^att_/);
|
|
124
|
-
expect(attachment.filename).toBe('design-mockup.fig');
|
|
125
|
-
const fetched = await store.getAttachment(attachment.id);
|
|
126
|
-
expect(fetched?.url).toBe('https://storage.example.com/design-mockup.fig');
|
|
127
|
-
const taskAttachments = await store.getAttachments({ taskId: 'task_1' });
|
|
128
|
-
expect(taskAttachments).toHaveLength(1);
|
|
129
|
-
const projectAttachments = await store.getAttachments({ projectId: 'proj_1' });
|
|
130
|
-
expect(projectAttachments).toHaveLength(1);
|
|
131
|
-
const nonExistent = await store.getAttachments({ taskId: 'other_task' });
|
|
132
|
-
expect(nonExistent).toHaveLength(0);
|
|
133
|
-
const deleted = await store.deleteAttachment(attachment.id);
|
|
134
|
-
expect(deleted).toBe(true);
|
|
135
|
-
const remaining = await store.getAttachments({ taskId: 'task_1' });
|
|
136
|
-
expect(remaining).toHaveLength(0);
|
|
137
|
-
});
|
|
138
|
-
it('should create, retrieve, update, and delete workflows', async () => {
|
|
139
|
-
const workflow = await store.createWorkflow({
|
|
140
|
-
name: 'SQLite Workflow',
|
|
141
|
-
isDefault: true,
|
|
142
|
-
defaultStatusKey: 'todo',
|
|
143
|
-
statuses: [{ key: 'todo', label: 'To Do', category: 'not_started' }],
|
|
144
|
-
transitions: []
|
|
145
|
-
});
|
|
146
|
-
expect(workflow.id).toMatch(/^wf_/);
|
|
147
|
-
expect(workflow.name).toBe('SQLite Workflow');
|
|
148
|
-
const fetched = await store.getWorkflow(workflow.id);
|
|
149
|
-
expect(fetched?.isDefault).toBe(true);
|
|
150
|
-
const updated = await store.updateWorkflow(workflow.id, { name: 'Updated SQLite Workflow' });
|
|
151
|
-
expect(updated?.name).toBe('Updated SQLite Workflow');
|
|
152
|
-
const all = await store.getWorkflows();
|
|
153
|
-
expect(all).toHaveLength(1);
|
|
154
|
-
const deleted = await store.deleteWorkflow(workflow.id);
|
|
155
|
-
expect(deleted).toBe(true);
|
|
156
|
-
const remaining = await store.getWorkflows();
|
|
157
|
-
expect(remaining).toHaveLength(0);
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
describe('SQLiteStore outside the vitest runtime', () => {
|
|
161
|
-
const distEntry = fileURLToPath(new URL('../../dist/index.js', import.meta.url));
|
|
162
|
-
// vitest injects `require` into ESM modules, which once hid an `eval("require(...)")` failure
|
|
163
|
-
// that broke `new SQLiteStore({ filename })` in plain Node. Run the built package in a real Node process.
|
|
164
|
-
it.skipIf(!existsSync(distEntry))('constructs from a filename in a plain Node ESM process', () => {
|
|
165
|
-
const script = `
|
|
166
|
-
const { SQLiteStore } = await import(${JSON.stringify(pathToFileURL(distEntry).href)});
|
|
167
|
-
const store = new SQLiteStore({ filename: ':memory:' });
|
|
168
|
-
const project = await store.createProject({ key: 'SMOKE', name: 'Smoke' });
|
|
169
|
-
process.stdout.write(project.key);
|
|
170
|
-
`;
|
|
171
|
-
const output = execFileSync(process.execPath, ['--input-type=module', '--no-warnings', '-e', script], {
|
|
172
|
-
encoding: 'utf8'
|
|
173
|
-
});
|
|
174
|
-
expect(output).toBe('SMOKE');
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
//# sourceMappingURL=sqlite.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.test.js","sourceRoot":"","sources":["../../src/store/sqlite.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-state.test.d.ts","sourceRoot":"","sources":["../src/task-state.test.ts"],"names":[],"mappings":""}
|