[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
This commit is contained in:
60
electron/bridges/dnfFigSpec.test.cjs
Normal file
60
electron/bridges/dnfFigSpec.test.cjs
Normal file
@@ -0,0 +1,60 @@
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const path = require("node:path");
|
||||
const { pathToFileURL } = require("node:url");
|
||||
const fs = require("node:fs");
|
||||
|
||||
const dnfSpecPath = path.join(__dirname, "..", "specs", "dnf.js");
|
||||
|
||||
function resolveNames(name) {
|
||||
return Array.isArray(name) ? name : [name];
|
||||
}
|
||||
|
||||
function collectSubcommandNames(spec) {
|
||||
const names = new Set();
|
||||
for (const sub of spec.subcommands || []) {
|
||||
for (const n of resolveNames(sub.name)) names.add(n);
|
||||
}
|
||||
return names;
|
||||
}
|
||||
|
||||
test("local dnf fig spec covers common Rocky/RHEL package-manager commands", async () => {
|
||||
assert.equal(fs.existsSync(dnfSpecPath), true, "electron/specs/dnf.js should exist");
|
||||
|
||||
const mod = await import(pathToFileURL(dnfSpecPath).href);
|
||||
const spec = mod.default?.default ?? mod.default;
|
||||
assert.ok(spec, "dnf spec should export a default completionSpec");
|
||||
assert.equal(spec.name, "dnf");
|
||||
|
||||
const names = collectSubcommandNames(spec);
|
||||
for (const required of [
|
||||
"install",
|
||||
"remove",
|
||||
"upgrade",
|
||||
"update",
|
||||
"autoremove",
|
||||
"reinstall",
|
||||
"downgrade",
|
||||
"search",
|
||||
"info",
|
||||
"list",
|
||||
"provides",
|
||||
"clean",
|
||||
"makecache",
|
||||
"repolist",
|
||||
"history",
|
||||
"group",
|
||||
"distro-sync",
|
||||
"swap",
|
||||
"module",
|
||||
]) {
|
||||
assert.equal(names.has(required), true, `missing dnf subcommand: ${required}`);
|
||||
}
|
||||
|
||||
const group = (spec.subcommands || []).find((s) => resolveNames(s.name).includes("group"));
|
||||
assert.ok(group, "group subcommand should exist");
|
||||
const groupNames = collectSubcommandNames(group);
|
||||
for (const required of ["install", "remove", "list", "info"]) {
|
||||
assert.equal(groupNames.has(required), true, `missing dnf group subcommand: ${required}`);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user