harmony/test/argsparser_test.ts

73 lines
1.7 KiB
TypeScript
Raw Normal View History

2021-04-28 13:57:59 +00:00
import { parseArgs, Args } from "../src/utils/command.ts";
2021-04-28 18:22:54 +00:00
import { assertEquals, assertNotEquals } from "https://deno.land/std@0.95.0/testing/asserts.ts"
2021-04-28 13:57:59 +00:00
2021-04-28 18:22:54 +00:00
// debugger
const commandArgs: Args[] = [
{
2021-04-28 13:57:59 +00:00
name: "permaban",
match: "flag",
flag: "--permanent",
2021-04-28 18:22:54 +00:00
defaultValue: true,
2021-04-28 13:57:59 +00:00
}, {
name: "user",
match: "mention",
}, {
name: "reason",
match: "rest",
2021-04-28 18:22:54 +00:00
defaultValue: "ree"
}
];
const messageArgs1: string[] = ["<@!708544768342229012>","--permanent","bye","bye","Skyler"];
const expectedResult1 = {
permaban: true,
user: "708544768342229012",
reason: ["bye","bye","Skyler"]
}
Deno.test({
name: "parse command arguments 1 (assertEquals)",
fn: () => {
const result = parseArgs(commandArgs,messageArgs1);
assertEquals(result, expectedResult1)
},
sanitizeOps: true,
sanitizeResources: true,
sanitizeExit: true,
})
const messageArgs2: string[] = ["<@!708544768342229012>","bye","bye","Skyler"];
const expectedResult2 = {
2021-04-28 13:57:59 +00:00
permaban: true,
user: "708544768342229012",
reason: ["bye","bye","Skyler"]
}
2021-04-28 18:22:54 +00:00
Deno.test({
name: "parse command arguments 2 (assertEquals)",
fn: () => {
const result = parseArgs(commandArgs, messageArgs2);
assertEquals(result, expectedResult2)
},
sanitizeOps: true,
sanitizeResources: true,
sanitizeExit: true,
})
const messageArgs3: string[] = ["<@!708544768342229012>","bye","bye","Skyler"];
const expectedResult3 = {
permaban: false,
user: "708544768342229012",
reason: ["bye","bye","Skyler"]
}
2021-04-28 13:57:59 +00:00
Deno.test({
2021-04-28 18:22:54 +00:00
name: "parse command arguments 3 (assertNotEquals)",
2021-04-28 13:57:59 +00:00
fn: () => {
2021-04-28 18:22:54 +00:00
const result = parseArgs(commandArgs, messageArgs3);
assertNotEquals(result, expectedResult3)
2021-04-28 13:57:59 +00:00
},
sanitizeOps: true,
sanitizeResources: true,
sanitizeExit: true,
})