@simplens/onboard 1.0.9 → 1.0.10
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/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/templates.d.ts +2 -2
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +4 -4
- package/package.json +5 -1
- package/src/__tests__/env-config.test.ts +0 -28
- package/src/__tests__/errors.test.ts +0 -188
- package/src/__tests__/infra-prompts.test.ts +0 -56
- package/src/__tests__/infra.test.ts +0 -30
- package/src/__tests__/utils.test.ts +0 -142
- package/src/__tests__/validators.test.ts +0 -221
- package/src/config/constants.ts +0 -87
- package/src/config/index.ts +0 -1
- package/src/env-config.ts +0 -503
- package/src/index.ts +0 -704
- package/src/infra.ts +0 -515
- package/src/plugins.ts +0 -221
- package/src/services.ts +0 -401
- package/src/templates.ts +0 -282
- package/src/types/domain.ts +0 -135
- package/src/types/errors.ts +0 -173
- package/src/types/index.ts +0 -2
- package/src/ui.ts +0 -91
- package/src/utils/index.ts +0 -1
- package/src/utils/logger.ts +0 -144
- package/src/utils.ts +0 -183
- package/src/validators.ts +0 -196
- package/tsconfig.json +0 -19
- package/vitest.config.ts +0 -22
package/dist/index.js
CHANGED
|
@@ -449,6 +449,14 @@ async function main() {
|
|
|
449
449
|
}
|
|
450
450
|
// Step 6: Service orchestration
|
|
451
451
|
log.step('Step 6/6 — Service Orchestration');
|
|
452
|
+
if (setupOptions.enableSsl && setupOptions.sslDomain) {
|
|
453
|
+
note(`Before proceeding, ensure the following:\n\n` +
|
|
454
|
+
` 1. You have a registered domain name (e.g. ${setupOptions.sslDomain})\n` +
|
|
455
|
+
` 2. An A record for ${setupOptions.sslDomain} points to this machine's public IP\n` +
|
|
456
|
+
` 3. Port 80 and 443 are open in your firewall / security group\n\n` +
|
|
457
|
+
`Let's Encrypt will verify domain ownership via an HTTP challenge on port 80.\n` +
|
|
458
|
+
`If the A record is missing or DNS has not propagated, certificate issuance will fail.`, 'DNS Prerequisite');
|
|
459
|
+
}
|
|
452
460
|
let shouldStart = false;
|
|
453
461
|
if (options.full) {
|
|
454
462
|
// In full mode, don't auto-start services, just show commands
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export declare const INFRA_COMPOSE_TEMPLATE = "\nservices:\n # ================
|
|
|
2
2
|
export declare const APP_COMPOSE_TEMPLATE = "services:\n api:\n image: ghcr.io/simplenotificationsystem/simplens-core:${CORE_VERSION:-latest}\n container_name: api\n ports:\n - 3000:3000\n env_file:\n - .env\n environment:\n SIMPLENS_CONFIG_PATH: ${SIMPLENS_CONFIG_PATH:-/app/simplens.config.yaml}\n volumes:\n - plugin-data:/app/.plugins\n - logs-data:/app/logs\n - ./simplens.config.yaml:/app/simplens.config.yaml:ro\n command: [ \"node\", \"dist/api/server.js\" ]\n restart: unless-stopped\n healthcheck:\n test: [ \"CMD\", \"node\", \"-e\", \"require('http').get('http://localhost:3000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))\" ]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n\n worker:\n image: ghcr.io/simplenotificationsystem/simplens-core:${CORE_VERSION:-latest}\n env_file:\n - .env\n volumes:\n - logs-data:/app/logs\n command: [ \"node\", \"dist/workers/worker.js\" ]\n restart: unless-stopped\n\n notification_processor:\n image: ghcr.io/simplenotificationsystem/simplens-core:${CORE_VERSION:-latest}\n env_file:\n - .env\n environment:\n SIMPLENS_CONFIG_PATH: ${SIMPLENS_CONFIG_PATH:-/app/simplens.config.yaml}\n volumes:\n - plugin-data:/app/.plugins\n - logs-data:/app/logs\n - ./simplens.config.yaml:/app/simplens.config.yaml:ro\n command: [ \"node\", \"dist/processors/unified/unified.processor.js\" ]\n depends_on:\n api:\n condition: service_healthy\n restart: unless-stopped\n\n delayed_processor:\n image: ghcr.io/simplenotificationsystem/simplens-core:${CORE_VERSION:-latest}\n env_file:\n - .env\n volumes:\n - logs-data:/app/logs\n command: [ \"node\", \"dist/processors/delayed/delayed.processor.js\" ]\n restart: unless-stopped\n\n recovery:\n image: ghcr.io/simplenotificationsystem/simplens-core:${CORE_VERSION:-latest}\n env_file:\n - .env\n volumes:\n - logs-data:/app/logs\n command: [ \"node\", \"dist/workers/recovery/recovery.service.js\" ]\n restart: unless-stopped\n\n dashboard:\n image: ghcr.io/simplenotificationsystem/simplens-dashboard:${DASHBOARD_VERSION:-latest}\n ports:\n - 3002:3002\n container_name: dashboard\n env_file:\n - .env\n environment:\n PORT: ${DASHBOARD_PORT:-3002}\n API_BASE_URL: http://api:${PORT:-3000}\n WEBHOOK_HOST: dashboard\n WEBHOOK_PORT: ${DASHBOARD_PORT:-3002}\n restart: unless-stopped\n\nvolumes:\n plugin-data:\n logs-data:\n\nnetworks:\n default:\n name: simplens\n";
|
|
3
3
|
export declare const APP_NGINX_SERVICE_TEMPLATE = " nginx:\n image: nginx:alpine\n container_name: nginx\n ports:\n - \"80:80\"\n volumes:\n - \"./nginx.conf:/etc/nginx/conf.d/default.conf:ro\"\n depends_on:\n - api\n - dashboard\n restart: unless-stopped";
|
|
4
4
|
export declare const APP_NGINX_SSL_SERVICE_TEMPLATE = " nginx:\n image: nginx:alpine\n container_name: nginx\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - \"./nginx.conf:/etc/nginx/conf.d/default.conf:ro\"\n - certbot-etc:/etc/letsencrypt\n - certbot-www:/var/www/certbot\n depends_on:\n - api\n - dashboard\n restart: unless-stopped";
|
|
5
|
-
export declare const APP_CERTBOT_SERVICES_TEMPLATE = " certbot:\n image: certbot/certbot:latest\n container_name: certbot\n volumes:\n - certbot-etc:/etc/letsencrypt\n - certbot-www:/var/www/certbot\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: \"trap 'exit 0' TERM; while true; do sleep 86400; done\"\n restart: unless-stopped\n\n certbot-renew:\n image: docker:cli\n container_name: certbot-renew\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n depends_on:\n - certbot\n - nginx\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: \"while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done\"\n restart: unless-stopped";
|
|
6
|
-
export declare const INFRA_CERTBOT_SERVICES_TEMPLATE = " certbot:\n image: certbot/certbot:latest\n container_name: certbot\n volumes:\n - certbot-etc:/etc/letsencrypt\n - certbot-www:/var/www/certbot\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: \"trap 'exit 0' TERM; while true; do sleep 86400; done\"\n restart: unless-stopped\n\n certbot-renew:\n image: docker:cli\n container_name: certbot-renew\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n depends_on:\n - certbot\n - nginx\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: \"while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done\"\n restart: unless-stopped";
|
|
5
|
+
export declare const APP_CERTBOT_SERVICES_TEMPLATE = " certbot:\n image: certbot/certbot:latest\n container_name: certbot\n volumes:\n - certbot-etc:/etc/letsencrypt\n - certbot-www:/var/www/certbot\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: [\"trap 'exit 0' TERM; while true; do sleep 86400; done\"]\n restart: unless-stopped\n\n certbot-renew:\n image: docker:cli\n container_name: certbot-renew\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n depends_on:\n - certbot\n - nginx\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: [\"while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done\"]\n restart: unless-stopped";
|
|
6
|
+
export declare const INFRA_CERTBOT_SERVICES_TEMPLATE = " certbot:\n image: certbot/certbot:latest\n container_name: certbot\n volumes:\n - certbot-etc:/etc/letsencrypt\n - certbot-www:/var/www/certbot\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: [\"trap 'exit 0' TERM; while true; do sleep 86400; done\"]\n restart: unless-stopped\n\n certbot-renew:\n image: docker:cli\n container_name: certbot-renew\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n depends_on:\n - certbot\n - nginx\n entrypoint: [\"/bin/sh\", \"-c\"]\n command: [\"while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done\"]\n restart: unless-stopped";
|
|
7
7
|
export declare const INFRA_CERTBOT_VOLUMES: readonly ["certbot-etc", "certbot-www"];
|
|
8
8
|
//# sourceMappingURL=templates.d.ts.map
|
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,02GAqHlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,ylFAuFhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,wPAUX,CAAC;AAE7B,eAAO,MAAM,8BAA8B,yVAaf,CAAC;AAE7B,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,02GAqHlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,ylFAuFhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,wPAUX,CAAC;AAE7B,eAAO,MAAM,8BAA8B,yVAaf,CAAC;AAE7B,eAAO,MAAM,6BAA6B,quBAoBd,CAAC;AAE7B,eAAO,MAAM,+BAA+B,quBAoBhB,CAAC;AAE7B,eAAO,MAAM,qBAAqB,yCAA0C,CAAC"}
|
package/dist/templates.js
CHANGED
|
@@ -237,7 +237,7 @@ export const APP_CERTBOT_SERVICES_TEMPLATE = ` certbot:
|
|
|
237
237
|
- certbot-etc:/etc/letsencrypt
|
|
238
238
|
- certbot-www:/var/www/certbot
|
|
239
239
|
entrypoint: ["/bin/sh", "-c"]
|
|
240
|
-
command: "trap 'exit 0' TERM; while true; do sleep 86400; done"
|
|
240
|
+
command: ["trap 'exit 0' TERM; while true; do sleep 86400; done"]
|
|
241
241
|
restart: unless-stopped
|
|
242
242
|
|
|
243
243
|
certbot-renew:
|
|
@@ -249,7 +249,7 @@ export const APP_CERTBOT_SERVICES_TEMPLATE = ` certbot:
|
|
|
249
249
|
- certbot
|
|
250
250
|
- nginx
|
|
251
251
|
entrypoint: ["/bin/sh", "-c"]
|
|
252
|
-
command: "while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done"
|
|
252
|
+
command: ["while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done"]
|
|
253
253
|
restart: unless-stopped`;
|
|
254
254
|
export const INFRA_CERTBOT_SERVICES_TEMPLATE = ` certbot:
|
|
255
255
|
image: certbot/certbot:latest
|
|
@@ -258,7 +258,7 @@ export const INFRA_CERTBOT_SERVICES_TEMPLATE = ` certbot:
|
|
|
258
258
|
- certbot-etc:/etc/letsencrypt
|
|
259
259
|
- certbot-www:/var/www/certbot
|
|
260
260
|
entrypoint: ["/bin/sh", "-c"]
|
|
261
|
-
command: "trap 'exit 0' TERM; while true; do sleep 86400; done"
|
|
261
|
+
command: ["trap 'exit 0' TERM; while true; do sleep 86400; done"]
|
|
262
262
|
restart: unless-stopped
|
|
263
263
|
|
|
264
264
|
certbot-renew:
|
|
@@ -270,7 +270,7 @@ export const INFRA_CERTBOT_SERVICES_TEMPLATE = ` certbot:
|
|
|
270
270
|
- certbot
|
|
271
271
|
- nginx
|
|
272
272
|
entrypoint: ["/bin/sh", "-c"]
|
|
273
|
-
command: "while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done"
|
|
273
|
+
command: ["while true; do sleep 43200; docker exec certbot certbot renew --webroot -w /var/www/certbot --quiet && docker exec nginx nginx -s reload || true; done"]
|
|
274
274
|
restart: unless-stopped`;
|
|
275
275
|
export const INFRA_CERTBOT_VOLUMES = ['certbot-etc', 'certbot-www'];
|
|
276
276
|
//# sourceMappingURL=templates.js.map
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplens/onboard",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"simplens-onboard": "./dist/index.js"
|
|
8
8
|
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
9
13
|
"scripts": {
|
|
10
14
|
"build": "tsc",
|
|
11
15
|
"dev": "tsc --watch",
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { normalizeBasePath, validateBasePath } from '../env-config.js';
|
|
3
|
-
|
|
4
|
-
describe('env-config base path helpers', () => {
|
|
5
|
-
it('accepts empty base path for root', () => {
|
|
6
|
-
expect(validateBasePath('')).toBe(true);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
it('accepts a single segment path', () => {
|
|
10
|
-
expect(validateBasePath('/dashboard')).toBe(true);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('accepts nested path segments', () => {
|
|
14
|
-
expect(validateBasePath('/admin/v1')).toBe(true);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it('rejects path without leading slash', () => {
|
|
18
|
-
expect(validateBasePath('dashboard')).not.toBe(true);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('rejects trailing slash path', () => {
|
|
22
|
-
expect(validateBasePath('/dashboard/')).not.toBe(true);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it('trims whitespace during normalization', () => {
|
|
26
|
-
expect(normalizeBasePath(' /dashboard ')).toBe('/dashboard');
|
|
27
|
-
});
|
|
28
|
-
});
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import {
|
|
3
|
-
OnboardingError,
|
|
4
|
-
DockerNotInstalledError,
|
|
5
|
-
DockerNotRunningError,
|
|
6
|
-
DockerPermissionError,
|
|
7
|
-
DockerComposeError,
|
|
8
|
-
FileSystemError,
|
|
9
|
-
DirectoryNotWritableError,
|
|
10
|
-
isOnboardingError,
|
|
11
|
-
formatErrorForUser,
|
|
12
|
-
} from '../types/errors.js';
|
|
13
|
-
|
|
14
|
-
describe('error types', () => {
|
|
15
|
-
describe('OnboardingError', () => {
|
|
16
|
-
it('should create error with code and message', () => {
|
|
17
|
-
const error = new OnboardingError('TEST_CODE', 'Test message');
|
|
18
|
-
|
|
19
|
-
expect(error.code).toBe('TEST_CODE');
|
|
20
|
-
expect(error.message).toBe('Test message');
|
|
21
|
-
expect(error.name).toBe('OnboardingError');
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it('should include troubleshooting when provided', () => {
|
|
25
|
-
const error = new OnboardingError(
|
|
26
|
-
'TEST_CODE',
|
|
27
|
-
'Test message',
|
|
28
|
-
'Try this fix'
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
expect(error.troubleshooting).toBe('Try this fix');
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('should have proper stack trace', () => {
|
|
35
|
-
const error = new OnboardingError('TEST', 'message');
|
|
36
|
-
|
|
37
|
-
expect(error.stack).toBeDefined();
|
|
38
|
-
expect(error.stack).toContain('OnboardingError');
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
describe('DockerNotInstalledError', () => {
|
|
43
|
-
it('should have correct message and troubleshooting', () => {
|
|
44
|
-
const error = new DockerNotInstalledError();
|
|
45
|
-
|
|
46
|
-
expect(error.message).toContain('not installed');
|
|
47
|
-
expect(error.troubleshooting).toContain('https://docs.docker.com/get-docker/');
|
|
48
|
-
expect(error.name).toBe('DockerNotInstalledError');
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
describe('DockerNotRunningError', () => {
|
|
53
|
-
it('should have correct message and troubleshooting', () => {
|
|
54
|
-
const error = new DockerNotRunningError();
|
|
55
|
-
|
|
56
|
-
expect(error.message).toContain('not running');
|
|
57
|
-
expect(error.troubleshooting).toContain('Docker daemon');
|
|
58
|
-
expect(error.name).toBe('DockerNotRunningError');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
describe('DockerPermissionError', () => {
|
|
63
|
-
it('should have correct message and troubleshooting', () => {
|
|
64
|
-
const error = new DockerPermissionError();
|
|
65
|
-
|
|
66
|
-
expect(error.message).toContain('Permission denied');
|
|
67
|
-
expect(error.troubleshooting).toContain('usermod');
|
|
68
|
-
expect(error.name).toBe('DockerPermissionError');
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
describe('DockerComposeError', () => {
|
|
73
|
-
it('should include operation in message', () => {
|
|
74
|
-
const error = new DockerComposeError('start services');
|
|
75
|
-
|
|
76
|
-
expect(error.message).toContain('start services');
|
|
77
|
-
expect(error.name).toBe('DockerComposeError');
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
it('should use custom troubleshooting when provided', () => {
|
|
81
|
-
const error = new DockerComposeError('pull images', 'Check network connection');
|
|
82
|
-
|
|
83
|
-
expect(error.troubleshooting).toBe('Check network connection');
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
it('should have default troubleshooting', () => {
|
|
87
|
-
const error = new DockerComposeError('operation');
|
|
88
|
-
|
|
89
|
-
expect(error.troubleshooting).toContain('docker compose logs');
|
|
90
|
-
expect(error.troubleshooting).toContain('docker-compose logs');
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
describe('FileSystemError', () => {
|
|
95
|
-
it('should include path in error', () => {
|
|
96
|
-
const error = new FileSystemError(
|
|
97
|
-
'Cannot write',
|
|
98
|
-
'/path/to/file',
|
|
99
|
-
'Check permissions'
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
expect(error.path).toBe('/path/to/file');
|
|
103
|
-
expect(error.troubleshooting).toBe('Check permissions');
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
describe('DirectoryNotWritableError', () => {
|
|
108
|
-
it('should include path in message and error', () => {
|
|
109
|
-
const error = new DirectoryNotWritableError('/opt/app');
|
|
110
|
-
|
|
111
|
-
expect(error.message).toContain('/opt/app');
|
|
112
|
-
expect(error.path).toBe('/opt/app');
|
|
113
|
-
expect(error.troubleshooting).toContain('permissions');
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
describe('isOnboardingError', () => {
|
|
118
|
-
it('should return true for OnboardingError instances', () => {
|
|
119
|
-
const error = new OnboardingError('CODE', 'message');
|
|
120
|
-
|
|
121
|
-
expect(isOnboardingError(error)).toBe(true);
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
it('should return true for subclasses of OnboardingError', () => {
|
|
125
|
-
const error = new DockerNotInstalledError();
|
|
126
|
-
|
|
127
|
-
expect(isOnboardingError(error)).toBe(true);
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
it('should return false for regular Error', () => {
|
|
131
|
-
const error = new Error('regular error');
|
|
132
|
-
|
|
133
|
-
expect(isOnboardingError(error)).toBe(false);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('should return false for non-error values', () => {
|
|
137
|
-
expect(isOnboardingError('string')).toBe(false);
|
|
138
|
-
expect(isOnboardingError(null)).toBe(false);
|
|
139
|
-
expect(isOnboardingError(undefined)).toBe(false);
|
|
140
|
-
expect(isOnboardingError({})).toBe(false);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
describe('formatErrorForUser', () => {
|
|
145
|
-
it('should format OnboardingError with troubleshooting', () => {
|
|
146
|
-
const error = new OnboardingError(
|
|
147
|
-
'TEST',
|
|
148
|
-
'Something went wrong',
|
|
149
|
-
'Try this fix'
|
|
150
|
-
);
|
|
151
|
-
|
|
152
|
-
const formatted = formatErrorForUser(error);
|
|
153
|
-
|
|
154
|
-
expect(formatted).toContain('❌ Something went wrong');
|
|
155
|
-
expect(formatted).toContain('💡 Troubleshooting:');
|
|
156
|
-
expect(formatted).toContain('Try this fix');
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
it('should format OnboardingError without troubleshooting', () => {
|
|
160
|
-
const error = new OnboardingError('TEST', 'Something went wrong');
|
|
161
|
-
|
|
162
|
-
const formatted = formatErrorForUser(error);
|
|
163
|
-
|
|
164
|
-
expect(formatted).toBe('❌ Something went wrong');
|
|
165
|
-
expect(formatted).not.toContain('Troubleshooting');
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it('should format regular Error', () => {
|
|
169
|
-
const error = new Error('Regular error message');
|
|
170
|
-
|
|
171
|
-
const formatted = formatErrorForUser(error);
|
|
172
|
-
|
|
173
|
-
expect(formatted).toContain('Unexpected error');
|
|
174
|
-
expect(formatted).toContain('Regular error message');
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
it('should handle non-Error values', () => {
|
|
178
|
-
const formatted = formatErrorForUser('some string');
|
|
179
|
-
|
|
180
|
-
expect(formatted).toBe('❌ An unknown error occurred');
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
it('should handle null/undefined', () => {
|
|
184
|
-
expect(formatErrorForUser(null)).toBe('❌ An unknown error occurred');
|
|
185
|
-
expect(formatErrorForUser(undefined)).toBe('❌ An unknown error occurred');
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
});
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
|
|
3
|
-
// Mock @clack/prompts
|
|
4
|
-
vi.mock('@clack/prompts', () => ({
|
|
5
|
-
multiselect: vi.fn(),
|
|
6
|
-
spinner: vi.fn(() => ({
|
|
7
|
-
start: vi.fn(),
|
|
8
|
-
stop: vi.fn(),
|
|
9
|
-
error: vi.fn(),
|
|
10
|
-
message: vi.fn(),
|
|
11
|
-
})),
|
|
12
|
-
}));
|
|
13
|
-
|
|
14
|
-
// Mock the ui.js module
|
|
15
|
-
vi.mock('../ui.js', () => ({
|
|
16
|
-
handleCancel: vi.fn(),
|
|
17
|
-
}));
|
|
18
|
-
|
|
19
|
-
import { multiselect } from '@clack/prompts';
|
|
20
|
-
import { promptInfraServicesWithBasePath } from '../infra.js';
|
|
21
|
-
|
|
22
|
-
describe('promptInfraServicesWithBasePath', () => {
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
vi.clearAllMocks();
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('includes nginx when allowNginx is true', async () => {
|
|
28
|
-
const mockMultiselect = vi.mocked(multiselect);
|
|
29
|
-
mockMultiselect.mockResolvedValue(['mongo', 'redis', 'nginx']);
|
|
30
|
-
|
|
31
|
-
const result = await promptInfraServicesWithBasePath({ allowNginx: true, defaultNginx: true });
|
|
32
|
-
|
|
33
|
-
// Should include nginx in options
|
|
34
|
-
const callArgs = mockMultiselect.mock.calls[0][0] as any;
|
|
35
|
-
const values = callArgs.options.map((o: any) => o.value);
|
|
36
|
-
expect(values).toContain('nginx');
|
|
37
|
-
expect(callArgs.initialValues).toContain('nginx');
|
|
38
|
-
expect(callArgs.initialValues).not.toContain('kafka-ui');
|
|
39
|
-
|
|
40
|
-
expect(result).toContain('nginx');
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('excludes nginx when allowNginx is false', async () => {
|
|
44
|
-
const mockMultiselect = vi.mocked(multiselect);
|
|
45
|
-
mockMultiselect.mockResolvedValue(['mongo', 'redis']);
|
|
46
|
-
|
|
47
|
-
const result = await promptInfraServicesWithBasePath({ allowNginx: false });
|
|
48
|
-
|
|
49
|
-
// Should NOT include nginx in options
|
|
50
|
-
const callArgs = mockMultiselect.mock.calls[0][0] as any;
|
|
51
|
-
const values = callArgs.options.map((o: any) => o.value);
|
|
52
|
-
expect(values).not.toContain('nginx');
|
|
53
|
-
|
|
54
|
-
expect(result).not.toContain('nginx');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { buildAppComposeContent } from '../infra.js';
|
|
3
|
-
|
|
4
|
-
describe('infra app compose generation', () => {
|
|
5
|
-
it('does not include nginx when disabled', () => {
|
|
6
|
-
const compose = buildAppComposeContent(false);
|
|
7
|
-
expect(compose).not.toContain(' nginx:');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('includes nginx service when enabled', () => {
|
|
11
|
-
const compose = buildAppComposeContent(true);
|
|
12
|
-
expect(compose).toContain(' nginx:');
|
|
13
|
-
expect(compose).toContain('./nginx.conf:/etc/nginx/conf.d/default.conf:ro');
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('does not include certbot services when ssl is disabled', () => {
|
|
17
|
-
const compose = buildAppComposeContent(true, { includeSsl: false });
|
|
18
|
-
expect(compose).not.toContain(' certbot:');
|
|
19
|
-
expect(compose).not.toContain(' certbot-renew:');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('includes certbot services and volumes when ssl is enabled', () => {
|
|
23
|
-
const compose = buildAppComposeContent(false, { includeSsl: true });
|
|
24
|
-
expect(compose).toContain(' nginx:');
|
|
25
|
-
expect(compose).toContain(' certbot:');
|
|
26
|
-
expect(compose).toContain(' certbot-renew:');
|
|
27
|
-
expect(compose).toContain('certbot-etc:');
|
|
28
|
-
expect(compose).toContain('certbot-www:');
|
|
29
|
-
});
|
|
30
|
-
});
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { promises as fs } from 'fs';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import {
|
|
6
|
-
fileExists,
|
|
7
|
-
writeFile,
|
|
8
|
-
readFile,
|
|
9
|
-
appendFile,
|
|
10
|
-
} from '../utils.js';
|
|
11
|
-
|
|
12
|
-
describe('utils - file operations', () => {
|
|
13
|
-
let tempDir: string;
|
|
14
|
-
|
|
15
|
-
beforeEach(async () => {
|
|
16
|
-
// Create a temporary directory for tests
|
|
17
|
-
tempDir = path.join(os.tmpdir(), `onboard-test-${Date.now()}`);
|
|
18
|
-
await fs.mkdir(tempDir, { recursive: true });
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
afterEach(async () => {
|
|
22
|
-
// Clean up temporary directory
|
|
23
|
-
try {
|
|
24
|
-
await fs.rm(tempDir, { recursive: true, force: true });
|
|
25
|
-
} catch (error) {
|
|
26
|
-
// Ignore cleanup errors
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
describe('fileExists', () => {
|
|
31
|
-
it('should return true for existing file', async () => {
|
|
32
|
-
const filePath = path.join(tempDir, 'test.txt');
|
|
33
|
-
await fs.writeFile(filePath, 'content');
|
|
34
|
-
|
|
35
|
-
expect(await fileExists(filePath)).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should return false for non-existing file', async () => {
|
|
39
|
-
const filePath = path.join(tempDir, 'nonexistent.txt');
|
|
40
|
-
|
|
41
|
-
expect(await fileExists(filePath)).toBe(false);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('should return true for existing directory', async () => {
|
|
45
|
-
expect(await fileExists(tempDir)).toBe(true);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
describe('writeFile', () => {
|
|
50
|
-
it('should write content to file', async () => {
|
|
51
|
-
const filePath = path.join(tempDir, 'write-test.txt');
|
|
52
|
-
const content = 'Hello, World!';
|
|
53
|
-
|
|
54
|
-
await writeFile(filePath, content);
|
|
55
|
-
|
|
56
|
-
const written = await fs.readFile(filePath, 'utf-8');
|
|
57
|
-
expect(written).toBe(content);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
it('should create parent directories if they do not exist', async () => {
|
|
61
|
-
const filePath = path.join(tempDir, 'nested', 'dir', 'file.txt');
|
|
62
|
-
const content = 'Nested content';
|
|
63
|
-
|
|
64
|
-
await writeFile(filePath, content);
|
|
65
|
-
|
|
66
|
-
expect(await fileExists(filePath)).toBe(true);
|
|
67
|
-
const written = await fs.readFile(filePath, 'utf-8');
|
|
68
|
-
expect(written).toBe(content);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it('should overwrite existing file', async () => {
|
|
72
|
-
const filePath = path.join(tempDir, 'overwrite.txt');
|
|
73
|
-
|
|
74
|
-
await fs.writeFile(filePath, 'original');
|
|
75
|
-
await writeFile(filePath, 'new content');
|
|
76
|
-
|
|
77
|
-
const written = await fs.readFile(filePath, 'utf-8');
|
|
78
|
-
expect(written).toBe('new content');
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
describe('readFile', () => {
|
|
83
|
-
it('should read file content', async () => {
|
|
84
|
-
const filePath = path.join(tempDir, 'read-test.txt');
|
|
85
|
-
const content = 'File content to read';
|
|
86
|
-
await fs.writeFile(filePath, content);
|
|
87
|
-
|
|
88
|
-
const read = await readFile(filePath);
|
|
89
|
-
|
|
90
|
-
expect(read).toBe(content);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
it('should throw error for non-existing file', async () => {
|
|
94
|
-
const filePath = path.join(tempDir, 'nonexistent.txt');
|
|
95
|
-
|
|
96
|
-
await expect(readFile(filePath)).rejects.toThrow();
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it('should handle UTF-8 content', async () => {
|
|
100
|
-
const filePath = path.join(tempDir, 'utf8.txt');
|
|
101
|
-
const content = 'Hello 世界 🌍';
|
|
102
|
-
await fs.writeFile(filePath, content);
|
|
103
|
-
|
|
104
|
-
const read = await readFile(filePath);
|
|
105
|
-
|
|
106
|
-
expect(read).toBe(content);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
describe('appendFile', () => {
|
|
111
|
-
it('should append content to existing file', async () => {
|
|
112
|
-
const filePath = path.join(tempDir, 'append-test.txt');
|
|
113
|
-
await fs.writeFile(filePath, 'Line 1\n');
|
|
114
|
-
|
|
115
|
-
await appendFile(filePath, 'Line 2\n');
|
|
116
|
-
|
|
117
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
118
|
-
expect(content).toBe('Line 1\nLine 2\n');
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('should create file if it does not exist', async () => {
|
|
122
|
-
const filePath = path.join(tempDir, 'new-append.txt');
|
|
123
|
-
|
|
124
|
-
await appendFile(filePath, 'First line\n');
|
|
125
|
-
|
|
126
|
-
expect(await fileExists(filePath)).toBe(true);
|
|
127
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
128
|
-
expect(content).toBe('First line\n');
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it('should handle multiple appends', async () => {
|
|
132
|
-
const filePath = path.join(tempDir, 'multi-append.txt');
|
|
133
|
-
|
|
134
|
-
await appendFile(filePath, 'Line 1\n');
|
|
135
|
-
await appendFile(filePath, 'Line 2\n');
|
|
136
|
-
await appendFile(filePath, 'Line 3\n');
|
|
137
|
-
|
|
138
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
139
|
-
expect(content).toBe('Line 1\nLine 2\nLine 3\n');
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|