mirror of
https://github.com/TangentFoxy/argparse.git
synced 2025-07-27 18:42:20 +00:00
97 lines
3.1 KiB
Lua
97 lines
3.1 KiB
Lua
local Parser = require "argparse"
|
|
getmetatable(Parser()).error = function(_, msg) error(msg) end
|
|
|
|
describe("tests related to tips", function()
|
|
describe("provides tips when data is too long", function()
|
|
it("for options", function()
|
|
local parser = Parser()
|
|
parser:option "-q" "--quiet"
|
|
|
|
assert.has_error(function() parser:parse{"--quiett=true"} end,
|
|
"unknown option '--quiett'\nDid you mean '--quiet'?")
|
|
end)
|
|
|
|
it("for commands", function()
|
|
local parser = Parser "name"
|
|
parser:command "install"
|
|
|
|
assert.has_error(function() parser:parse{"installq"} end,
|
|
"unknown command 'installq'\nDid you mean 'install'?")
|
|
end)
|
|
end)
|
|
|
|
describe("provides tips when data is too short", function()
|
|
it("for options", function()
|
|
local parser = Parser()
|
|
parser:option "-q" "--quiet"
|
|
|
|
assert.has_error(function() parser:parse{"--quet=true"} end,
|
|
"unknown option '--quet'\nDid you mean '--quiet'?")
|
|
end)
|
|
|
|
it("for commands", function()
|
|
local parser = Parser "name"
|
|
parser:command "install"
|
|
|
|
assert.has_error(function() parser:parse{"nstall"} end,
|
|
"unknown command 'nstall'\nDid you mean 'install'?")
|
|
end)
|
|
end)
|
|
|
|
describe("provides tips on substitution", function()
|
|
it("for options", function()
|
|
local parser = Parser()
|
|
parser:option "-q" "--quiet"
|
|
|
|
assert.has_error(function() parser:parse{"--qriet=true"} end,
|
|
"unknown option '--qriet'\nDid you mean '--quiet'?")
|
|
end)
|
|
|
|
it("for commands", function()
|
|
local parser = Parser "name"
|
|
parser:command "install"
|
|
|
|
assert.has_error(function() parser:parse{"inntall"} end,
|
|
"unknown command 'inntall'\nDid you mean 'install'?")
|
|
end)
|
|
end)
|
|
|
|
describe("provides tips on transpositions", function()
|
|
it("for options", function()
|
|
local parser = Parser()
|
|
parser:option "-q" "--quiet"
|
|
|
|
assert.has_error(function() parser:parse{"--queit=true"} end,
|
|
"unknown option '--queit'\nDid you mean '--quiet'?")
|
|
end)
|
|
|
|
it("for commands", function()
|
|
local parser = Parser "name"
|
|
parser:command "install"
|
|
|
|
assert.has_error(function() parser:parse{"isntall"} end,
|
|
"unknown command 'isntall'\nDid you mean 'install'?")
|
|
end)
|
|
end)
|
|
|
|
describe("provides multiple tips", function()
|
|
it("for options", function()
|
|
local parser = Parser()
|
|
parser:option "-q" "--quiet"
|
|
parser:option "--quick"
|
|
|
|
assert.has_error(function() parser:parse{"--quiec=true"} end,
|
|
"unknown option '--quiec'\nDid you mean one of these: '--quick' '--quiet'?")
|
|
end)
|
|
|
|
it("for commands", function()
|
|
local parser = Parser "name"
|
|
parser:command "install"
|
|
parser:command "instant"
|
|
|
|
assert.has_error(function() parser:parse{"instanl"} end,
|
|
"unknown command 'instanl'\nDid you mean one of these: 'install' 'instant'?")
|
|
end)
|
|
end)
|
|
end)
|