mirror of
https://github.com/github/awesome-copilot.git
synced 2026-07-16 10:53:25 +00:00
33 lines
1.3 KiB
JavaScript
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);
|
|
}
|
|
});
|