Files
awesome-copilot/extensions/connector-namespaces/state.test.mjs
T
github-actions[bot] d171be5b52 chore: publish from main
2026-07-16 00:30:12 +00:00

33 lines
1.3 KiB
JavaScript

import assert from "node:assert/strict";
import { mkdtempSync, readFileSync, rmSync, statSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import test from "node:test";
test("saved namespace config uses private directory and file permissions", async (t) => {
const root = mkdtempSync(join(tmpdir(), "connector-state-"));
const previousHome = process.env.COPILOT_HOME;
process.env.COPILOT_HOME = root;
t.after(() => {
if (previousHome === undefined) delete process.env.COPILOT_HOME;
else process.env.COPILOT_HOME = previousHome;
rmSync(root, { recursive: true, force: true });
});
const state = await import(`./state.mjs?permissions=${Date.now()}`);
const config = {
subscriptionId: "00000000-0000-0000-0000-000000000000",
resourceGroup: "example-rg",
gatewayName: "example-gateway",
};
state.saveConfig(config);
const storageDir = join(root, "extensions", "connector-namespaces", "artifacts");
const configFile = join(storageDir, "gateway-config.json");
assert.deepEqual(JSON.parse(readFileSync(configFile, "utf8")), config);
if (process.platform !== "win32") {
assert.equal(statSync(storageDir).mode & 0o777, 0o700);
assert.equal(statSync(configFile).mode & 0o777, 0o600);
}
});