@kya-os/create-mcpi-app 1.7.37 → 1.7.38-canary.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.
@@ -1,182 +0,0 @@
1
- /**
2
- * Tests for Configuration Builder Utilities
3
- *
4
- * Validates that config builders generate correct configurations
5
- * and handle remote fetching correctly.
6
- */
7
- import { describe, it, expect, beforeEach, vi } from 'vitest';
8
- import { buildBaseConfig, buildConfigWithRemote } from '../config-builder.js';
9
- describe('buildBaseConfig', () => {
10
- it('should generate valid base config with defaults', () => {
11
- const env = {};
12
- const config = buildBaseConfig(env);
13
- expect(config.environment).toBe('development');
14
- expect(config.identity?.enabled).toBe(true);
15
- expect(config.proofing?.enabled).toBe(true);
16
- expect(config.delegation?.enabled).toBe(true);
17
- expect(config.audit?.enabled).toBe(true);
18
- });
19
- it('should use environment variables when provided', () => {
20
- const env = {
21
- MCPI_ENV: 'production',
22
- AGENTSHIELD_API_URL: 'https://custom.example.com',
23
- AGENTSHIELD_API_KEY: 'custom-key'
24
- };
25
- const config = buildBaseConfig(env);
26
- expect(config.environment).toBe('production');
27
- expect(config.identity?.environment).toBe('production');
28
- expect(config.proofing?.batchQueue?.destinations?.[0].apiUrl).toBe('https://custom.example.com');
29
- expect(config.delegation?.verifier?.apiUrl).toBe('https://custom.example.com');
30
- });
31
- it('should include all required config sections', () => {
32
- const env = {};
33
- const config = buildBaseConfig(env);
34
- expect(config).toHaveProperty('environment');
35
- expect(config).toHaveProperty('identity');
36
- expect(config).toHaveProperty('proofing');
37
- expect(config).toHaveProperty('delegation');
38
- expect(config).toHaveProperty('audit');
39
- expect(config).toHaveProperty('session');
40
- });
41
- it('should set debug mode based on environment', () => {
42
- const devConfig = buildBaseConfig({ MCPI_ENV: 'development' });
43
- const prodConfig = buildBaseConfig({ MCPI_ENV: 'production' });
44
- expect(devConfig.proofing?.batchQueue?.debug).toBe(true);
45
- expect(prodConfig.proofing?.batchQueue?.debug).toBe(false);
46
- });
47
- });
48
- describe('buildConfigWithRemote', () => {
49
- let mockFetch;
50
- let mockCache;
51
- beforeEach(() => {
52
- mockFetch = vi.fn();
53
- mockCache = {
54
- get: vi.fn(),
55
- set: vi.fn()
56
- };
57
- });
58
- it('should use remote config when API key is provided', async () => {
59
- const remoteConfig = {
60
- environment: 'production',
61
- identity: { enabled: true, environment: 'production' }
62
- };
63
- vi.mocked(mockCache.get).mockResolvedValue(null);
64
- mockFetch.mockResolvedValue({
65
- ok: true,
66
- json: async () => ({ success: true, data: remoteConfig })
67
- });
68
- const options = {
69
- env: {
70
- AGENTSHIELD_API_KEY: 'test-key',
71
- AGENTSHIELD_API_URL: 'https://kya.vouched.id'
72
- },
73
- fetchProvider: mockFetch,
74
- cache: mockCache,
75
- agentDid: 'did:key:test'
76
- };
77
- const config = await buildConfigWithRemote(options);
78
- expect(config).toEqual(remoteConfig);
79
- expect(mockFetch).toHaveBeenCalled();
80
- });
81
- it('should fallback to local config when remote fetch fails', async () => {
82
- vi.mocked(mockCache.get).mockResolvedValue(null);
83
- mockFetch.mockResolvedValue({
84
- ok: false,
85
- status: 500
86
- });
87
- const options = {
88
- env: {
89
- AGENTSHIELD_API_KEY: 'test-key',
90
- MCPI_ENV: 'production'
91
- },
92
- fetchProvider: mockFetch,
93
- cache: mockCache
94
- };
95
- const config = await buildConfigWithRemote(options);
96
- expect(config.environment).toBe('production');
97
- expect(config).toHaveProperty('identity');
98
- expect(config).toHaveProperty('proofing');
99
- });
100
- it('should fallback to local config when API key not provided', async () => {
101
- const options = {
102
- env: {
103
- MCPI_ENV: 'development'
104
- },
105
- fetchProvider: mockFetch,
106
- cache: mockCache
107
- };
108
- const config = await buildConfigWithRemote(options);
109
- expect(config.environment).toBe('development');
110
- expect(mockFetch).not.toHaveBeenCalled();
111
- });
112
- it('should fallback to local config when fetch provider not provided', async () => {
113
- const options = {
114
- env: {
115
- AGENTSHIELD_API_KEY: 'test-key',
116
- MCPI_ENV: 'development'
117
- },
118
- cache: mockCache
119
- // fetchProvider not provided
120
- };
121
- const config = await buildConfigWithRemote(options);
122
- expect(config.environment).toBe('development');
123
- expect(mockFetch).not.toHaveBeenCalled();
124
- });
125
- it('should use projectId when provided', async () => {
126
- const remoteConfig = {
127
- environment: 'production'
128
- };
129
- vi.mocked(mockCache.get).mockResolvedValue(null);
130
- mockFetch.mockResolvedValue({
131
- ok: true,
132
- json: async () => ({ success: true, data: remoteConfig })
133
- });
134
- const options = {
135
- env: {
136
- AGENTSHIELD_API_KEY: 'test-key',
137
- AGENTSHIELD_PROJECT_ID: 'test-project'
138
- },
139
- fetchProvider: mockFetch,
140
- cache: mockCache
141
- };
142
- const config = await buildConfigWithRemote(options);
143
- expect(config).toEqual(remoteConfig);
144
- // Verify fetch was called with projectId endpoint
145
- expect(mockFetch).toHaveBeenCalled();
146
- });
147
- it('should handle cache hit from remote config', async () => {
148
- const cachedConfig = {
149
- environment: 'production',
150
- identity: { enabled: true, environment: 'production' }
151
- };
152
- vi.mocked(mockCache.get).mockResolvedValue(JSON.stringify({
153
- config: cachedConfig,
154
- expiresAt: Date.now() + 60000
155
- }));
156
- const options = {
157
- env: {
158
- AGENTSHIELD_API_KEY: 'test-key',
159
- AGENTSHIELD_PROJECT_ID: 'test-project'
160
- },
161
- fetchProvider: mockFetch,
162
- cache: mockCache
163
- };
164
- const config = await buildConfigWithRemote(options);
165
- expect(config).toEqual(cachedConfig);
166
- expect(mockFetch).not.toHaveBeenCalled();
167
- });
168
- });
169
- describe('Environment variable parsing', () => {
170
- it('should handle different environment variable names', () => {
171
- const config1 = buildBaseConfig({ MCPI_ENV: 'production' });
172
- const config2 = buildBaseConfig({ ENVIRONMENT: 'production' });
173
- expect(config1.environment).toBe('production');
174
- expect(config2.environment).toBe('production');
175
- });
176
- it('should default to development when no env var provided', () => {
177
- const config = buildBaseConfig({});
178
- expect(config.environment).toBe('development');
179
- expect(config.identity?.environment).toBe('development');
180
- });
181
- });
182
- //# sourceMappingURL=config-builder.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-builder.spec.js","sourceRoot":"","sources":["../../../src/helpers/__tests__/config-builder.spec.ts"],"names":[],"mappings":"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"}