Skip to main content
Module

std/flags/unknown_test.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.import { assertEquals } from "../testing/asserts.ts";import { parse } from "./mod.ts";
Deno.test(function booleanAndAliasIsNotUnknown(): void { const unknown: unknown[] = []; function unknownFn(arg: unknown): boolean { unknown.push(arg); return false; } const aliased = ["-h", "true", "--derp", "true"]; const regular = ["--herp", "true", "-d", "true"]; const opts = { alias: { h: "herp" }, boolean: "h", unknown: unknownFn, }; parse(aliased, opts); parse(regular, opts);
assertEquals(unknown, ["--derp", "-d"]);});
Deno.test(function flagBooleanTrueAnyDoubleHyphenArgumentIsNotUnknown(): void { const unknown: unknown[] = []; function unknownFn(arg: unknown): boolean { unknown.push(arg); return false; } const argv = parse(["--honk", "--tacos=good", "cow", "-p", "55"], { boolean: true, unknown: unknownFn, }); assertEquals(unknown, ["--tacos=good", "cow", "-p"]); assertEquals(argv, { honk: true, _: [], });});
Deno.test(function stringAndAliasIsNotUnkown(): void { const unknown: unknown[] = []; function unknownFn(arg: unknown): boolean { unknown.push(arg); return false; } const aliased = ["-h", "hello", "--derp", "goodbye"]; const regular = ["--herp", "hello", "-d", "moon"]; const opts = { alias: { h: "herp" }, string: "h", unknown: unknownFn, }; parse(aliased, opts); parse(regular, opts);
assertEquals(unknown, ["--derp", "-d"]);});
Deno.test(function defaultAndAliasIsNotUnknown(): void { const unknown: unknown[] = []; function unknownFn(arg: unknown): boolean { unknown.push(arg); return false; } const aliased = ["-h", "hello"]; const regular = ["--herp", "hello"]; const opts = { default: { h: "bar" }, alias: { h: "herp" }, unknown: unknownFn, }; parse(aliased, opts); parse(regular, opts);
assertEquals(unknown, []);});
Deno.test(function valueFollowingDoubleHyphenIsNotUnknown(): void { const unknown: unknown[] = []; function unknownFn(arg: unknown): boolean { unknown.push(arg); return false; } const aliased = ["--bad", "--", "good", "arg"]; const opts = { "--": true, unknown: unknownFn, }; const argv = parse(aliased, opts);
assertEquals(unknown, ["--bad"]); assertEquals(argv, { "--": ["good", "arg"], _: [], });});