libresilient/__tests__/cli/lrcli.test.js

65 wiersze
1.8 KiB
JavaScript

import { assertEquals } from "https://deno.land/std@0.167.0/testing/asserts.ts";
import { main } from '../../cli/lrcli.js';
Deno.test("basic usage info", async () => {
// init
let r
// no args
r = await main([])
assertEquals(r, 1)
// -h/--help
r = await main(['-h'])
assertEquals(r, 0)
r = await main(['--help'])
assertEquals(r, 0)
});
Deno.test("non-existent plugin handling", async () => {
// init
let r
// just the plugin name
r = await main(['no-such-plugin'])
assertEquals(r, 2)
// plugin name with different combinations of help flag
r = await main(['no-such-plugin', '--help'])
assertEquals(r, 2)
r = await main(['no-such-plugin', '-h'])
assertEquals(r, 2)
r = await main(['--help', 'no-such-plugin'])
assertEquals(r, 2)
r = await main(['-h', 'no-such-plugin'])
assertEquals(r, 2)
});
//
// tests below need an imports map
//
Deno.test("plugin loading", async () => {
const r = await main(['simple-plugin', '--help'])
assertEquals(r, 0)
});
Deno.test("plugin action processing", async () => {
// init
let r
// non-existent action
r = await main(['simple-plugin', 'non-such-action'])
assertEquals(r, 4)
r = await main(['simple-plugin', '-h', 'non-such-action'])
assertEquals(r, 0)
r = await main(['simple-plugin', '--help', 'non-such-action'])
assertEquals(r, 0)
r = await main(['simple-plugin', 'non-such-action', '-h'])
assertEquals(r, 4)
r = await main(['simple-plugin', 'non-such-action', '--help'])
assertEquals(r, 4)
// action that exists
r = await main(['simple-plugin', 'test-action'])
assertEquals(r, 0)
r = await main(['simple-plugin', 'test-action', '-h'])
assertEquals(r, 0)
r = await main(['simple-plugin', 'test-action', '--help'])
assertEquals(r, 0)
});