feat: prepare Zhinian desktop pilot
This commit is contained in:
36
tests/unit/optional-native-cleanup.test.ts
Normal file
36
tests/unit/optional-native-cleanup.test.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { afterEach, describe, expect, it } from 'vitest';
|
||||
import { existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
|
||||
import { cleanupOpenClawRuntimeNativeClipboard } from '@electron/utils/optional-native-cleanup';
|
||||
|
||||
describe('optional native cleanup', () => {
|
||||
const root = join(tmpdir(), 'clawx-tests', 'optional-native-cleanup');
|
||||
|
||||
afterEach(() => {
|
||||
rmSync(root, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
it('removes optional native clipboard packages from a managed OpenClaw runtime', () => {
|
||||
const nodeModules = join(root, 'openclaw', 'node_modules');
|
||||
const scope = join(nodeModules, '@mariozechner');
|
||||
const nativeClipboard = join(scope, 'clipboard-darwin-arm64');
|
||||
const genericClipboard = join(scope, 'clipboard');
|
||||
const codingAgent = join(scope, 'pi-coding-agent');
|
||||
const unrelated = join(nodeModules, '@example', 'clipboard-darwin-arm64');
|
||||
|
||||
for (const dir of [nativeClipboard, genericClipboard, codingAgent, unrelated]) {
|
||||
mkdirSync(dir, { recursive: true });
|
||||
writeFileSync(join(dir, 'package.json'), '{}\n');
|
||||
}
|
||||
|
||||
const removed = cleanupOpenClawRuntimeNativeClipboard(join(root, 'openclaw'));
|
||||
|
||||
expect(removed).toBe(2);
|
||||
expect(existsSync(nativeClipboard)).toBe(false);
|
||||
expect(existsSync(genericClipboard)).toBe(false);
|
||||
expect(existsSync(codingAgent)).toBe(true);
|
||||
expect(existsSync(unrelated)).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user