Public dry run dryrun-309831e1e021
Source commit: 309831e1e021f962c118452336776fd9a94025f9 Public tree identity: sha256:6fa95c1745579bd6256dbeb3d476db0b07c2f24aa9213b0f7783ce1adfc8aca5
This commit is contained in:
commit
f22d0a5791
113 changed files with 39348 additions and 0 deletions
47
scripts/cli-login-smoke.js
Normal file
47
scripts/cli-login-smoke.js
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
const assert = require("assert");
|
||||
const cp = require("child_process");
|
||||
const path = require("path");
|
||||
|
||||
const repo = path.resolve(__dirname, "..");
|
||||
const coordinator = "https://coord.example.test";
|
||||
const defaultOperatorEndpoint = "https://disasmer.michelpaulissen.com:9443";
|
||||
|
||||
function disasmer(args) {
|
||||
return JSON.parse(
|
||||
cp.execFileSync(
|
||||
"cargo",
|
||||
["run", "-q", "-p", "disasmer-cli", "--bin", "disasmer", "--", ...args],
|
||||
{ cwd: repo, encoding: "utf8" }
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
const device = disasmer(["login", "--coordinator", coordinator]);
|
||||
assert.strictEqual(device.coordinator, coordinator);
|
||||
assert(device.human_flow.Device, "default human login should use device flow");
|
||||
assert.strictEqual(device.human_flow.Device.verification_url, `${coordinator}/auth/device`);
|
||||
assert.match(device.human_flow.Device.user_code, /^DISASMER-[A-F0-9]{4}-[A-F0-9]{4}$/);
|
||||
assert.match(device.human_flow.Device.device_code, /^sha256:[a-f0-9]{64}$/);
|
||||
assert.strictEqual(device.human_flow.Device.expires_in_seconds, 900);
|
||||
assert.strictEqual(device.human_flow.Device.yields_long_lived_secret_directly, false);
|
||||
|
||||
const defaultDevice = disasmer(["login"]);
|
||||
assert.strictEqual(defaultDevice.coordinator, defaultOperatorEndpoint);
|
||||
assert.strictEqual(
|
||||
defaultDevice.human_flow.Device.verification_url,
|
||||
`${defaultOperatorEndpoint}/auth/device`
|
||||
);
|
||||
|
||||
const browser = disasmer(["login", "--browser", "--plan", "--coordinator", coordinator]);
|
||||
assert.strictEqual(browser.coordinator, coordinator);
|
||||
assert(browser.human_flow.Browser, "browser login should be available for human users");
|
||||
assert.match(
|
||||
browser.human_flow.Browser.authorization_url,
|
||||
new RegExp(`^${coordinator.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/auth/browser/start\\?`)
|
||||
);
|
||||
assert.match(browser.human_flow.Browser.callback_path, /^http:\/\/127\.0\.0\.1:\d+\/callback$/);
|
||||
assert.match(browser.human_flow.Browser.state, /^sha256:[a-f0-9]{64}$/);
|
||||
|
||||
console.log("CLI login smoke passed");
|
||||
Loading…
Add table
Add a link
Reference in a new issue