@skillsmith/core 0.4.15 → 0.4.17
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/CHANGELOG.md +14 -0
- package/README.md +57 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/DependencyMerger.d.ts +39 -0
- package/dist/src/analysis/DependencyMerger.d.ts.map +1 -0
- package/dist/src/analysis/DependencyMerger.js +191 -0
- package/dist/src/analysis/DependencyMerger.js.map +1 -0
- package/dist/src/analysis/DependencyMerger.test.d.ts +2 -0
- package/dist/src/analysis/DependencyMerger.test.d.ts.map +1 -0
- package/dist/src/analysis/DependencyMerger.test.js +258 -0
- package/dist/src/analysis/DependencyMerger.test.js.map +1 -0
- package/dist/src/analysis/McpReferenceExtractor.d.ts +42 -0
- package/dist/src/analysis/McpReferenceExtractor.d.ts.map +1 -0
- package/dist/src/analysis/McpReferenceExtractor.js +92 -0
- package/dist/src/analysis/McpReferenceExtractor.js.map +1 -0
- package/dist/src/analysis/McpReferenceExtractor.test.d.ts +2 -0
- package/dist/src/analysis/McpReferenceExtractor.test.d.ts.map +1 -0
- package/dist/src/analysis/McpReferenceExtractor.test.js +262 -0
- package/dist/src/analysis/McpReferenceExtractor.test.js.map +1 -0
- package/dist/src/api/client.d.ts +2 -0
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/db/drivers/sqljsDriver.d.ts.map +1 -1
- package/dist/src/db/drivers/sqljsDriver.js +4 -8
- package/dist/src/db/drivers/sqljsDriver.js.map +1 -1
- package/dist/src/db/migrations/v10-dependencies.d.ts +18 -0
- package/dist/src/db/migrations/v10-dependencies.d.ts.map +1 -0
- package/dist/src/db/migrations/v10-dependencies.js +50 -0
- package/dist/src/db/migrations/v10-dependencies.js.map +1 -0
- package/dist/src/db/migrations/v2-phase5-columns.d.ts +7 -0
- package/dist/src/db/migrations/v2-phase5-columns.d.ts.map +1 -0
- package/dist/src/db/migrations/v2-phase5-columns.js +16 -0
- package/dist/src/db/migrations/v2-phase5-columns.js.map +1 -0
- package/dist/src/db/migrations/v3-sync-tables.d.ts +6 -0
- package/dist/src/db/migrations/v3-sync-tables.d.ts.map +1 -0
- package/dist/src/db/migrations/v3-sync-tables.js +41 -0
- package/dist/src/db/migrations/v3-sync-tables.js.map +1 -0
- package/dist/src/db/migrations/v4-security-columns.d.ts +7 -0
- package/dist/src/db/migrations/v4-security-columns.d.ts.map +1 -0
- package/dist/src/db/migrations/v4-security-columns.js +17 -0
- package/dist/src/db/migrations/v4-security-columns.js.map +1 -0
- package/dist/src/db/schema.d.ts +2 -2
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +20 -58
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.d.ts +1 -1
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
- package/dist/src/embeddings/hnsw-store.js +4 -34
- package/dist/src/embeddings/hnsw-store.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.types.d.ts +18 -0
- package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -1
- package/dist/src/embeddings/hnsw-store.types.js.map +1 -1
- package/dist/src/exports/repositories.d.ts +1 -0
- package/dist/src/exports/repositories.d.ts.map +1 -1
- package/dist/src/exports/repositories.js +4 -0
- package/dist/src/exports/repositories.js.map +1 -1
- package/dist/src/exports/services.d.ts +5 -0
- package/dist/src/exports/services.d.ts.map +1 -1
- package/dist/src/exports/services.js +11 -0
- package/dist/src/exports/services.js.map +1 -1
- package/dist/src/exports/types.d.ts +1 -0
- package/dist/src/exports/types.d.ts.map +1 -1
- package/dist/src/exports/types.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/GitHubIndexer.d.ts +3 -1
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
- package/dist/src/indexer/GitHubIndexer.js.map +1 -1
- package/dist/src/indexer/SkillParser.d.ts +20 -9
- package/dist/src/indexer/SkillParser.d.ts.map +1 -1
- package/dist/src/indexer/SkillParser.js +17 -10
- package/dist/src/indexer/SkillParser.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.js +2 -9
- package/dist/src/learning/PatternStore.js.map +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.js +5 -1
- package/dist/src/repositories/IndexerRepository.js.map +1 -1
- package/dist/src/repositories/SkillDependencyRepository.d.ts +73 -0
- package/dist/src/repositories/SkillDependencyRepository.d.ts.map +1 -0
- package/dist/src/repositories/SkillDependencyRepository.js +199 -0
- package/dist/src/repositories/SkillDependencyRepository.js.map +1 -0
- package/dist/src/routing/SONARouter.d.ts.map +1 -1
- package/dist/src/routing/SONARouter.js +4 -15
- package/dist/src/routing/SONARouter.js.map +1 -1
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +5 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +4 -2
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +24 -2
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.helpers.js +99 -3
- package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.js +29 -90
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.ssrf.d.ts +15 -0
- package/dist/src/security/scanner/SecurityScanner.ssrf.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.ssrf.js +76 -0
- package/dist/src/security/scanner/SecurityScanner.ssrf.js.map +1 -0
- package/dist/src/security/scanner/index.d.ts +1 -1
- package/dist/src/security/scanner/index.d.ts.map +1 -1
- package/dist/src/security/scanner/index.js +1 -1
- package/dist/src/security/scanner/index.js.map +1 -1
- package/dist/src/security/scanner/patterns.d.ts +6 -0
- package/dist/src/security/scanner/patterns.d.ts.map +1 -1
- package/dist/src/security/scanner/patterns.js +32 -0
- package/dist/src/security/scanner/patterns.js.map +1 -1
- package/dist/src/security/scanner/types.d.ts +2 -1
- package/dist/src/security/scanner/types.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.js +1 -0
- package/dist/src/security/scanner/weights.js.map +1 -1
- package/dist/src/services/skill-installation.helpers.d.ts +62 -0
- package/dist/src/services/skill-installation.helpers.d.ts.map +1 -0
- package/dist/src/services/skill-installation.helpers.js +335 -0
- package/dist/src/services/skill-installation.helpers.js.map +1 -0
- package/dist/src/services/skill-installation.service.d.ts +45 -0
- package/dist/src/services/skill-installation.service.d.ts.map +1 -0
- package/dist/src/services/skill-installation.service.js +383 -0
- package/dist/src/services/skill-installation.service.js.map +1 -0
- package/dist/src/services/skill-installation.types.d.ts +144 -0
- package/dist/src/services/skill-installation.types.d.ts.map +1 -0
- package/dist/src/services/skill-installation.types.js +38 -0
- package/dist/src/services/skill-installation.types.js.map +1 -0
- package/dist/src/services/skill-manifest.d.ts +20 -0
- package/dist/src/services/skill-manifest.d.ts.map +1 -0
- package/dist/src/services/skill-manifest.js +84 -0
- package/dist/src/services/skill-manifest.js.map +1 -0
- package/dist/src/session/SessionManager.helpers.d.ts +1 -27
- package/dist/src/session/SessionManager.helpers.d.ts.map +1 -1
- package/dist/src/session/SessionManager.helpers.js +0 -64
- package/dist/src/session/SessionManager.helpers.js.map +1 -1
- package/dist/src/session/SessionManager.memory.d.ts +12 -11
- package/dist/src/session/SessionManager.memory.d.ts.map +1 -1
- package/dist/src/session/SessionManager.memory.js +23 -115
- package/dist/src/session/SessionManager.memory.js.map +1 -1
- package/dist/src/session/SessionManager.types.d.ts +0 -37
- package/dist/src/session/SessionManager.types.d.ts.map +1 -1
- package/dist/src/session/SessionManager.types.js.map +1 -1
- package/dist/src/session/SessionRecovery.js +4 -4
- package/dist/src/session/SessionRecovery.js.map +1 -1
- package/dist/src/sources/SourceIndexer.d.ts +3 -1
- package/dist/src/sources/SourceIndexer.d.ts.map +1 -1
- package/dist/src/sources/SourceIndexer.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
- package/dist/src/testing/MultiLLMProvider.js +5 -19
- package/dist/src/testing/MultiLLMProvider.js.map +1 -1
- package/dist/src/types/dependencies.d.ts +85 -0
- package/dist/src/types/dependencies.d.ts.map +1 -0
- package/dist/src/types/dependencies.js +11 -0
- package/dist/src/types/dependencies.js.map +1 -0
- package/dist/src/types/skill.d.ts +3 -0
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tests/DailyIndexPipeline.test.js +3 -3
- package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
- package/dist/tests/GitHubIndexer.test.js +4 -2
- package/dist/tests/GitHubIndexer.test.js.map +1 -1
- package/dist/tests/billing/StripeClient.test.d.ts +18 -0
- package/dist/tests/billing/StripeClient.test.d.ts.map +1 -0
- package/dist/tests/billing/StripeClient.test.js +566 -0
- package/dist/tests/billing/StripeClient.test.js.map +1 -0
- package/dist/tests/billing/StripeWebhookHandler.test.d.ts +16 -0
- package/dist/tests/billing/StripeWebhookHandler.test.d.ts.map +1 -0
- package/dist/tests/billing/StripeWebhookHandler.test.js +240 -0
- package/dist/tests/billing/StripeWebhookHandler.test.js.map +1 -0
- package/dist/tests/billing/stripe-helpers.test.d.ts +7 -0
- package/dist/tests/billing/stripe-helpers.test.d.ts.map +1 -0
- package/dist/tests/billing/stripe-helpers.test.js +91 -0
- package/dist/tests/billing/stripe-helpers.test.js.map +1 -0
- package/dist/tests/billing/webhook-handlers.test.d.ts +16 -0
- package/dist/tests/billing/webhook-handlers.test.d.ts.map +1 -0
- package/dist/tests/billing/webhook-handlers.test.js +519 -0
- package/dist/tests/billing/webhook-handlers.test.js.map +1 -0
- package/dist/tests/db/migration.test.d.ts +11 -0
- package/dist/tests/db/migration.test.d.ts.map +1 -0
- package/dist/tests/db/migration.test.js +265 -0
- package/dist/tests/db/migration.test.js.map +1 -0
- package/dist/tests/edge-cases/EdgeCases.test.js +4 -1
- package/dist/tests/edge-cases/EdgeCases.test.js.map +1 -1
- package/dist/tests/repositories/SkillDependencyRepository.test.d.ts +10 -0
- package/dist/tests/repositories/SkillDependencyRepository.test.d.ts.map +1 -0
- package/dist/tests/repositories/SkillDependencyRepository.test.js +336 -0
- package/dist/tests/repositories/SkillDependencyRepository.test.js.map +1 -0
- package/dist/tests/security/ContinuousSecurity.test.js +2 -2
- package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
- package/dist/tests/security.test.js +200 -0
- package/dist/tests/security.test.js.map +1 -1
- package/dist/tests/session/SessionManager.helpers.test.js +1 -9
- package/dist/tests/session/SessionManager.helpers.test.js.map +1 -1
- package/dist/tests/session/SessionManager.memory.test.d.ts +3 -4
- package/dist/tests/session/SessionManager.memory.test.d.ts.map +1 -1
- package/dist/tests/session/SessionManager.memory.test.js +41 -123
- package/dist/tests/session/SessionManager.memory.test.js.map +1 -1
- package/dist/tests/sources.test.js +1 -1
- package/dist/tests/sources.test.js.map +1 -1
- package/dist/tests/sync/BackgroundSyncService.test.d.ts +13 -0
- package/dist/tests/sync/BackgroundSyncService.test.d.ts.map +1 -0
- package/dist/tests/sync/BackgroundSyncService.test.js +259 -0
- package/dist/tests/sync/BackgroundSyncService.test.js.map +1 -0
- package/dist/tests/testkit.d.ts +14 -0
- package/dist/tests/testkit.d.ts.map +1 -0
- package/dist/tests/testkit.js +14 -0
- package/dist/tests/testkit.js.map +1 -0
- package/dist/tests/unit/migrations/v10-dependencies.test.d.ts +6 -0
- package/dist/tests/unit/migrations/v10-dependencies.test.d.ts.map +1 -0
- package/dist/tests/unit/migrations/v10-dependencies.test.js +166 -0
- package/dist/tests/unit/migrations/v10-dependencies.test.js.map +1 -0
- package/dist/tests/unit/services/skill-installation.service.test.d.ts +8 -0
- package/dist/tests/unit/services/skill-installation.service.test.d.ts.map +1 -0
- package/dist/tests/unit/services/skill-installation.service.test.js +732 -0
- package/dist/tests/unit/services/skill-installation.service.test.js.map +1 -0
- package/package.json +19 -7
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -13
- package/dist/vitest.config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.test.js","sourceRoot":"","sources":["../../tests/sources.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sources.test.js","sourceRoot":"","sources":["../../tests/sources.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-3416: BackgroundSyncService Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for session-based automatic sync service:
|
|
5
|
+
* - Start/stop lifecycle
|
|
6
|
+
* - Sync-on-start behavior
|
|
7
|
+
* - Periodic check and sync triggering
|
|
8
|
+
* - Concurrent sync prevention
|
|
9
|
+
* - Manual sync
|
|
10
|
+
* - Error handling and callbacks
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=BackgroundSyncService.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackgroundSyncService.test.d.ts","sourceRoot":"","sources":["../../../tests/sync/BackgroundSyncService.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-3416: BackgroundSyncService Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for session-based automatic sync service:
|
|
5
|
+
* - Start/stop lifecycle
|
|
6
|
+
* - Sync-on-start behavior
|
|
7
|
+
* - Periodic check and sync triggering
|
|
8
|
+
* - Concurrent sync prevention
|
|
9
|
+
* - Manual sync
|
|
10
|
+
* - Error handling and callbacks
|
|
11
|
+
*/
|
|
12
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
13
|
+
import { BackgroundSyncService, createBackgroundSyncService, } from '../../src/sync/BackgroundSyncService.js';
|
|
14
|
+
/** Flush microtask queue so fire-and-forget promises resolve */
|
|
15
|
+
function flushPromises() {
|
|
16
|
+
return new Promise((resolve) => setImmediate(resolve));
|
|
17
|
+
}
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Mock Factories
|
|
20
|
+
// ============================================================================
|
|
21
|
+
function createMockSyncResult(overrides) {
|
|
22
|
+
return {
|
|
23
|
+
success: true,
|
|
24
|
+
skillsAdded: 2,
|
|
25
|
+
skillsUpdated: 1,
|
|
26
|
+
skillsUnchanged: 10,
|
|
27
|
+
totalProcessed: 13,
|
|
28
|
+
durationMs: 150,
|
|
29
|
+
errors: [],
|
|
30
|
+
dryRun: false,
|
|
31
|
+
...overrides,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function createMockSyncEngine(result) {
|
|
35
|
+
return {
|
|
36
|
+
sync: vi.fn().mockResolvedValue(result ?? createMockSyncResult()),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function createMockConfigRepo(overrides) {
|
|
40
|
+
const enabled = overrides?.enabled ?? true;
|
|
41
|
+
const lastSyncAt = overrides?.lastSyncAt ?? '2026-03-16T00:00:00Z';
|
|
42
|
+
const isSyncDue = overrides?.isSyncDue ?? false;
|
|
43
|
+
return {
|
|
44
|
+
getConfig: vi.fn().mockReturnValue({
|
|
45
|
+
enabled,
|
|
46
|
+
frequency: 'daily',
|
|
47
|
+
intervalMs: 86400000,
|
|
48
|
+
lastSyncAt,
|
|
49
|
+
}),
|
|
50
|
+
isSyncDue: vi.fn().mockReturnValue(isSyncDue),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Tests
|
|
55
|
+
// ============================================================================
|
|
56
|
+
describe('BackgroundSyncService', () => {
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
vi.useFakeTimers();
|
|
59
|
+
});
|
|
60
|
+
afterEach(() => {
|
|
61
|
+
vi.useRealTimers();
|
|
62
|
+
});
|
|
63
|
+
describe('start/stop lifecycle', () => {
|
|
64
|
+
it('should start and report isStarted', () => {
|
|
65
|
+
const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
|
|
66
|
+
syncOnStart: false,
|
|
67
|
+
});
|
|
68
|
+
service.start();
|
|
69
|
+
expect(service.isServiceStarted()).toBe(true);
|
|
70
|
+
service.stop();
|
|
71
|
+
expect(service.isServiceStarted()).toBe(false);
|
|
72
|
+
});
|
|
73
|
+
it('should not start if auto-sync is disabled', () => {
|
|
74
|
+
const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo({ enabled: false }), { syncOnStart: false });
|
|
75
|
+
service.start();
|
|
76
|
+
expect(service.isServiceStarted()).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
it('should ignore duplicate start calls', () => {
|
|
79
|
+
const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
|
|
80
|
+
syncOnStart: false,
|
|
81
|
+
});
|
|
82
|
+
service.start();
|
|
83
|
+
service.start(); // should not throw
|
|
84
|
+
expect(service.isServiceStarted()).toBe(true);
|
|
85
|
+
service.stop();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('sync-on-start', () => {
|
|
89
|
+
// These tests use real timers since triggerSync is fire-and-forget
|
|
90
|
+
// and fake timers interfere with promise resolution
|
|
91
|
+
beforeEach(() => {
|
|
92
|
+
vi.useRealTimers();
|
|
93
|
+
});
|
|
94
|
+
afterEach(() => {
|
|
95
|
+
vi.useFakeTimers();
|
|
96
|
+
});
|
|
97
|
+
it('should trigger sync immediately if due on start', async () => {
|
|
98
|
+
const engine = createMockSyncEngine();
|
|
99
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
|
|
100
|
+
syncOnStart: true,
|
|
101
|
+
});
|
|
102
|
+
service.start();
|
|
103
|
+
await flushPromises();
|
|
104
|
+
expect(engine.sync).toHaveBeenCalledOnce();
|
|
105
|
+
service.stop();
|
|
106
|
+
});
|
|
107
|
+
it('should not trigger sync on start if not due', async () => {
|
|
108
|
+
const engine = createMockSyncEngine();
|
|
109
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: false }), { syncOnStart: true });
|
|
110
|
+
service.start();
|
|
111
|
+
await flushPromises();
|
|
112
|
+
expect(engine.sync).not.toHaveBeenCalled();
|
|
113
|
+
service.stop();
|
|
114
|
+
});
|
|
115
|
+
it('should recognize never-synced as sync-due via shouldSyncNow', () => {
|
|
116
|
+
// When lastSyncAt is null, shouldSyncNow returns true immediately
|
|
117
|
+
// (without checking isSyncDue). Verified via manualSync integration test.
|
|
118
|
+
const engine = createMockSyncEngine();
|
|
119
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo({ lastSyncAt: null }), { syncOnStart: false } // Don't auto-fire; test manualSync instead
|
|
120
|
+
);
|
|
121
|
+
// manualSync directly calls sync, confirming the engine integration
|
|
122
|
+
const syncPromise = service.manualSync();
|
|
123
|
+
expect(engine.sync).toHaveBeenCalledOnce();
|
|
124
|
+
return syncPromise;
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('periodic checks', () => {
|
|
128
|
+
it('should check and sync on interval', async () => {
|
|
129
|
+
const engine = createMockSyncEngine();
|
|
130
|
+
const configRepo = createMockConfigRepo({ isSyncDue: false });
|
|
131
|
+
const service = new BackgroundSyncService(engine, configRepo, {
|
|
132
|
+
syncOnStart: false,
|
|
133
|
+
checkIntervalMs: 1000,
|
|
134
|
+
});
|
|
135
|
+
service.start();
|
|
136
|
+
// First interval — not due
|
|
137
|
+
await vi.advanceTimersByTimeAsync(1000);
|
|
138
|
+
expect(engine.sync).not.toHaveBeenCalled();
|
|
139
|
+
configRepo.isSyncDue.mockReturnValue(true);
|
|
140
|
+
await vi.advanceTimersByTimeAsync(1000);
|
|
141
|
+
expect(engine.sync).toHaveBeenCalledOnce();
|
|
142
|
+
service.stop();
|
|
143
|
+
});
|
|
144
|
+
it('should not sync after stop', async () => {
|
|
145
|
+
const engine = createMockSyncEngine();
|
|
146
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
|
|
147
|
+
syncOnStart: false,
|
|
148
|
+
checkIntervalMs: 1000,
|
|
149
|
+
});
|
|
150
|
+
service.start();
|
|
151
|
+
service.stop();
|
|
152
|
+
await vi.advanceTimersByTimeAsync(5000);
|
|
153
|
+
expect(engine.sync).not.toHaveBeenCalled();
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
describe('callbacks', () => {
|
|
157
|
+
beforeEach(() => {
|
|
158
|
+
vi.useRealTimers();
|
|
159
|
+
});
|
|
160
|
+
afterEach(() => {
|
|
161
|
+
vi.useFakeTimers();
|
|
162
|
+
});
|
|
163
|
+
it('should call onSyncComplete on success', async () => {
|
|
164
|
+
const onComplete = vi.fn();
|
|
165
|
+
const result = createMockSyncResult();
|
|
166
|
+
const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo({ isSyncDue: true }), { syncOnStart: true, onSyncComplete: onComplete });
|
|
167
|
+
service.start();
|
|
168
|
+
await flushPromises();
|
|
169
|
+
expect(onComplete).toHaveBeenCalledWith(result);
|
|
170
|
+
service.stop();
|
|
171
|
+
});
|
|
172
|
+
it('should call onSyncError on failure', async () => {
|
|
173
|
+
const onError = vi.fn();
|
|
174
|
+
const engine = {
|
|
175
|
+
sync: vi.fn().mockRejectedValue(new Error('Network timeout')),
|
|
176
|
+
};
|
|
177
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
|
|
178
|
+
syncOnStart: true,
|
|
179
|
+
onSyncError: onError,
|
|
180
|
+
});
|
|
181
|
+
service.start();
|
|
182
|
+
await flushPromises();
|
|
183
|
+
expect(onError).toHaveBeenCalledWith(expect.objectContaining({ message: 'Network timeout' }));
|
|
184
|
+
service.stop();
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('manualSync', () => {
|
|
188
|
+
it('should execute sync and return result', async () => {
|
|
189
|
+
const result = createMockSyncResult();
|
|
190
|
+
const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo(), { syncOnStart: false });
|
|
191
|
+
const syncResult = await service.manualSync();
|
|
192
|
+
expect(syncResult).toEqual(result);
|
|
193
|
+
});
|
|
194
|
+
it('should throw if sync already in progress', async () => {
|
|
195
|
+
let resolveSync;
|
|
196
|
+
const engine = {
|
|
197
|
+
sync: vi.fn().mockReturnValue(new Promise((resolve) => {
|
|
198
|
+
resolveSync = () => resolve(createMockSyncResult());
|
|
199
|
+
})),
|
|
200
|
+
};
|
|
201
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
|
|
202
|
+
syncOnStart: false,
|
|
203
|
+
});
|
|
204
|
+
const firstSync = service.manualSync();
|
|
205
|
+
await expect(service.manualSync()).rejects.toThrow('Sync already in progress');
|
|
206
|
+
resolveSync();
|
|
207
|
+
await firstSync;
|
|
208
|
+
});
|
|
209
|
+
it('should propagate sync errors', async () => {
|
|
210
|
+
const engine = {
|
|
211
|
+
sync: vi.fn().mockRejectedValue(new Error('DB locked')),
|
|
212
|
+
};
|
|
213
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
|
|
214
|
+
syncOnStart: false,
|
|
215
|
+
});
|
|
216
|
+
await expect(service.manualSync()).rejects.toThrow('DB locked');
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
describe('state tracking', () => {
|
|
220
|
+
it('should track checksPerformed and syncsTriggered', async () => {
|
|
221
|
+
const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo({ isSyncDue: true }), { syncOnStart: false, checkIntervalMs: 100 });
|
|
222
|
+
service.start();
|
|
223
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
224
|
+
const state = service.getState();
|
|
225
|
+
expect(state.checksPerformed).toBe(1);
|
|
226
|
+
expect(state.syncsTriggered).toBe(1);
|
|
227
|
+
service.stop();
|
|
228
|
+
});
|
|
229
|
+
it('should track lastResult after successful sync', async () => {
|
|
230
|
+
const result = createMockSyncResult({ skillsAdded: 5 });
|
|
231
|
+
const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo(), { syncOnStart: false });
|
|
232
|
+
await service.manualSync();
|
|
233
|
+
const state = service.getState();
|
|
234
|
+
expect(state.lastResult).toEqual(result);
|
|
235
|
+
expect(state.lastError).toBeNull();
|
|
236
|
+
});
|
|
237
|
+
it('should track lastError after failed sync', async () => {
|
|
238
|
+
const engine = {
|
|
239
|
+
sync: vi.fn().mockRejectedValue(new Error('fail')),
|
|
240
|
+
};
|
|
241
|
+
const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
|
|
242
|
+
syncOnStart: false,
|
|
243
|
+
});
|
|
244
|
+
await service.manualSync().catch(() => { });
|
|
245
|
+
const state = service.getState();
|
|
246
|
+
expect(state.lastError?.message).toBe('fail');
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
describe('createBackgroundSyncService factory', () => {
|
|
250
|
+
it('should create and start service', () => {
|
|
251
|
+
const service = createBackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
|
|
252
|
+
syncOnStart: false,
|
|
253
|
+
});
|
|
254
|
+
expect(service.isServiceStarted()).toBe(true);
|
|
255
|
+
service.stop();
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
//# sourceMappingURL=BackgroundSyncService.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackgroundSyncService.test.js","sourceRoot":"","sources":["../../../tests/sync/BackgroundSyncService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Test helper re-exports for cross-package test use
|
|
3
|
+
* @module @skillsmith/core/testkit
|
|
4
|
+
* @see SMI-3218
|
|
5
|
+
*
|
|
6
|
+
* Re-exports database test helpers so sibling packages (CLI, mcp-server)
|
|
7
|
+
* can import via `@skillsmith/core/testkit` instead of relative paths.
|
|
8
|
+
*
|
|
9
|
+
* Boundary: This subpath is for database test setup (createTestDatabase,
|
|
10
|
+
* closeDatabase). For MultiLLMProvider test utilities, use
|
|
11
|
+
* `@skillsmith/core/testing`.
|
|
12
|
+
*/
|
|
13
|
+
export { createTestDatabase, closeDatabase } from './helpers/database.js';
|
|
14
|
+
//# sourceMappingURL=testkit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testkit.d.ts","sourceRoot":"","sources":["../../tests/testkit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Test helper re-exports for cross-package test use
|
|
3
|
+
* @module @skillsmith/core/testkit
|
|
4
|
+
* @see SMI-3218
|
|
5
|
+
*
|
|
6
|
+
* Re-exports database test helpers so sibling packages (CLI, mcp-server)
|
|
7
|
+
* can import via `@skillsmith/core/testkit` instead of relative paths.
|
|
8
|
+
*
|
|
9
|
+
* Boundary: This subpath is for database test setup (createTestDatabase,
|
|
10
|
+
* closeDatabase). For MultiLLMProvider test utilities, use
|
|
11
|
+
* `@skillsmith/core/testing`.
|
|
12
|
+
*/
|
|
13
|
+
export { createTestDatabase, closeDatabase } from './helpers/database.js';
|
|
14
|
+
//# sourceMappingURL=testkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testkit.js","sourceRoot":"","sources":["../../tests/testkit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v10-dependencies.test.d.ts","sourceRoot":"","sources":["../../../../tests/unit/migrations/v10-dependencies.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tests for migration v10 — skill_dependencies table
|
|
3
|
+
* @see SMI-3134: Database Schema — skill_dependencies Table
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
6
|
+
import { createTestDatabase, closeDatabase } from '../../helpers/database.js';
|
|
7
|
+
import { getSchemaVersion, SCHEMA_VERSION } from '../../../src/db/schema.js';
|
|
8
|
+
import { MIGRATION_V10_SQL } from '../../../src/db/migrations/v10-dependencies.js';
|
|
9
|
+
describe('Migration v10: skill_dependencies table', () => {
|
|
10
|
+
let db;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
db = createTestDatabase();
|
|
13
|
+
});
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
closeDatabase(db);
|
|
16
|
+
});
|
|
17
|
+
it('creates the skill_dependencies table', () => {
|
|
18
|
+
const table = db
|
|
19
|
+
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='skill_dependencies'")
|
|
20
|
+
.get();
|
|
21
|
+
expect(table).toBeDefined();
|
|
22
|
+
expect(table.name).toBe('skill_dependencies');
|
|
23
|
+
});
|
|
24
|
+
it('has all expected columns with correct types', () => {
|
|
25
|
+
const columns = db.prepare('PRAGMA table_info(skill_dependencies)').all();
|
|
26
|
+
const columnMap = new Map(columns.map((c) => [c.name, c]));
|
|
27
|
+
// Verify all expected columns exist
|
|
28
|
+
const expectedColumns = [
|
|
29
|
+
'id',
|
|
30
|
+
'skill_id',
|
|
31
|
+
'dep_type',
|
|
32
|
+
'dep_target',
|
|
33
|
+
'dep_version',
|
|
34
|
+
'dep_source',
|
|
35
|
+
'confidence',
|
|
36
|
+
'metadata',
|
|
37
|
+
'created_at',
|
|
38
|
+
'updated_at',
|
|
39
|
+
];
|
|
40
|
+
for (const col of expectedColumns) {
|
|
41
|
+
expect(columnMap.has(col), `column '${col}' should exist`).toBe(true);
|
|
42
|
+
}
|
|
43
|
+
// Check NOT NULL constraints
|
|
44
|
+
expect(columnMap.get('skill_id').notnull).toBe(1);
|
|
45
|
+
expect(columnMap.get('dep_type').notnull).toBe(1);
|
|
46
|
+
expect(columnMap.get('dep_target').notnull).toBe(1);
|
|
47
|
+
expect(columnMap.get('dep_source').notnull).toBe(1);
|
|
48
|
+
expect(columnMap.get('created_at').notnull).toBe(1);
|
|
49
|
+
expect(columnMap.get('updated_at').notnull).toBe(1);
|
|
50
|
+
// Optional columns
|
|
51
|
+
expect(columnMap.get('dep_version').notnull).toBe(0);
|
|
52
|
+
expect(columnMap.get('confidence').notnull).toBe(0);
|
|
53
|
+
expect(columnMap.get('metadata').notnull).toBe(0);
|
|
54
|
+
// Primary key
|
|
55
|
+
expect(columnMap.get('id').pk).toBe(1);
|
|
56
|
+
});
|
|
57
|
+
it('migration is idempotent — running twice does not error', () => {
|
|
58
|
+
// createTestDatabase already ran the migration once.
|
|
59
|
+
// Running the SQL again should not throw (IF NOT EXISTS).
|
|
60
|
+
expect(() => db.exec(MIGRATION_V10_SQL)).not.toThrow();
|
|
61
|
+
});
|
|
62
|
+
it('schema version is at least 10 after migration', () => {
|
|
63
|
+
expect(getSchemaVersion(db)).toBeGreaterThanOrEqual(10);
|
|
64
|
+
expect(SCHEMA_VERSION).toBeGreaterThanOrEqual(10);
|
|
65
|
+
});
|
|
66
|
+
it('unique index prevents duplicate (skill_id, dep_type, dep_target, dep_source)', () => {
|
|
67
|
+
const insert = db.prepare(`
|
|
68
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
69
|
+
VALUES (?, ?, ?, ?)
|
|
70
|
+
`);
|
|
71
|
+
// First insert succeeds
|
|
72
|
+
insert.run('author/skill-a', 'mcp_server', '@modelcontextprotocol/server-github', 'declared');
|
|
73
|
+
// Same combination fails with constraint error
|
|
74
|
+
expect(() => insert.run('author/skill-a', 'mcp_server', '@modelcontextprotocol/server-github', 'declared')).toThrow(/UNIQUE constraint failed/);
|
|
75
|
+
});
|
|
76
|
+
it('allows same skill_id + dep_target with different dep_source', () => {
|
|
77
|
+
const insert = db.prepare(`
|
|
78
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
79
|
+
VALUES (?, ?, ?, ?)
|
|
80
|
+
`);
|
|
81
|
+
// Same target, different source — both should succeed
|
|
82
|
+
insert.run('author/skill-a', 'mcp_server', 'server-github', 'declared');
|
|
83
|
+
insert.run('author/skill-a', 'mcp_server', 'server-github', 'inferred_static');
|
|
84
|
+
const count = db.prepare('SELECT COUNT(*) as cnt FROM skill_dependencies').get();
|
|
85
|
+
expect(count.cnt).toBe(2);
|
|
86
|
+
});
|
|
87
|
+
describe('CHECK constraints', () => {
|
|
88
|
+
it('rejects invalid dep_type', () => {
|
|
89
|
+
const insert = db.prepare(`
|
|
90
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
91
|
+
VALUES (?, ?, ?, ?)
|
|
92
|
+
`);
|
|
93
|
+
expect(() => insert.run('author/skill-a', 'invalid_type', 'target', 'declared')).toThrow(/CHECK constraint failed/);
|
|
94
|
+
});
|
|
95
|
+
it('rejects invalid dep_source', () => {
|
|
96
|
+
const insert = db.prepare(`
|
|
97
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
98
|
+
VALUES (?, ?, ?, ?)
|
|
99
|
+
`);
|
|
100
|
+
expect(() => insert.run('author/skill-a', 'mcp_server', 'target', 'invalid_source')).toThrow(/CHECK constraint failed/);
|
|
101
|
+
});
|
|
102
|
+
it('accepts all valid dep_type values', () => {
|
|
103
|
+
const validTypes = [
|
|
104
|
+
'skill_hard',
|
|
105
|
+
'skill_soft',
|
|
106
|
+
'skill_peer',
|
|
107
|
+
'mcp_server',
|
|
108
|
+
'model_minimum',
|
|
109
|
+
'model_capability',
|
|
110
|
+
'env_tool',
|
|
111
|
+
'env_os',
|
|
112
|
+
'env_node',
|
|
113
|
+
'cli_version',
|
|
114
|
+
'conflict',
|
|
115
|
+
];
|
|
116
|
+
const insert = db.prepare(`
|
|
117
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
118
|
+
VALUES (?, ?, ?, ?)
|
|
119
|
+
`);
|
|
120
|
+
for (const depType of validTypes) {
|
|
121
|
+
expect(() => insert.run(`author/skill-${depType}`, depType, `target-${depType}`, 'declared')).not.toThrow();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
it('accepts all valid dep_source values', () => {
|
|
125
|
+
const validSources = ['declared', 'inferred_static', 'inferred_coinstall'];
|
|
126
|
+
const insert = db.prepare(`
|
|
127
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
|
|
128
|
+
VALUES (?, ?, ?, ?)
|
|
129
|
+
`);
|
|
130
|
+
for (const source of validSources) {
|
|
131
|
+
expect(() => insert.run(`author/skill-${source}`, 'mcp_server', `target-${source}`, source)).not.toThrow();
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
it('rejects confidence outside 0.0-1.0 range', () => {
|
|
135
|
+
const insert = db.prepare(`
|
|
136
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source, confidence)
|
|
137
|
+
VALUES (?, ?, ?, ?, ?)
|
|
138
|
+
`);
|
|
139
|
+
expect(() => insert.run('author/skill-a', 'mcp_server', 'target', 'declared', 1.5)).toThrow(/CHECK constraint failed/);
|
|
140
|
+
expect(() => insert.run('author/skill-b', 'mcp_server', 'target', 'declared', -0.1)).toThrow(/CHECK constraint failed/);
|
|
141
|
+
});
|
|
142
|
+
it('accepts confidence within 0.0-1.0 range and NULL', () => {
|
|
143
|
+
const insert = db.prepare(`
|
|
144
|
+
INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source, confidence)
|
|
145
|
+
VALUES (?, ?, ?, ?, ?)
|
|
146
|
+
`);
|
|
147
|
+
// Valid values
|
|
148
|
+
expect(() => insert.run('author/skill-c0', 'mcp_server', 'target-0', 'declared', 0.0)).not.toThrow();
|
|
149
|
+
expect(() => insert.run('author/skill-c1', 'mcp_server', 'target-1', 'declared', 1.0)).not.toThrow();
|
|
150
|
+
expect(() => insert.run('author/skill-c5', 'mcp_server', 'target-5', 'declared', 0.5)).not.toThrow();
|
|
151
|
+
expect(() => insert.run('author/skill-cn', 'mcp_server', 'target-n', 'declared', null)).not.toThrow();
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
it('creates expected indexes', () => {
|
|
155
|
+
const indexes = db
|
|
156
|
+
.prepare("SELECT name FROM sqlite_master WHERE type='index' AND tbl_name='skill_dependencies'")
|
|
157
|
+
.all();
|
|
158
|
+
const indexNames = indexes.map((i) => i.name);
|
|
159
|
+
expect(indexNames).toContain('idx_skill_deps_skill');
|
|
160
|
+
expect(indexNames).toContain('idx_skill_deps_target');
|
|
161
|
+
expect(indexNames).toContain('idx_skill_deps_type');
|
|
162
|
+
expect(indexNames).toContain('idx_skill_deps_source');
|
|
163
|
+
expect(indexNames).toContain('idx_skill_deps_unique');
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=v10-dependencies.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v10-dependencies.test.js","sourceRoot":"","sources":["../../../../tests/unit/migrations/v10-dependencies.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-3483: SkillInstallationService Unit Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for the extracted install/uninstall service in @skillsmith/core.
|
|
5
|
+
* Uses in-memory databases and mocked GitHub fetches.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=skill-installation.service.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-installation.service.test.d.ts","sourceRoot":"","sources":["../../../../tests/unit/services/skill-installation.service.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|