after_each -> inputs.unregister 'foo'
def = name: 'foo', description: 'foo', factory: -> true
inputs.register def
assert.same inputs.foo, def
inputs.register name: 'foo', description: 'foo', factory: -> true
inputs.unregister 'foo'
assert.is_nil inputs.foo
inputs.register name: 'foo', description: 'foo', factory: -> true
names = [name for name, func in pairs inputs when name == 'foo']
assert.same names, { 'foo' }
.register(spec)
assert.raises 'name', -> inputs.register description: 'foo', factory: -> true
assert.raises 'factory', -> inputs.register name: 'foo', description: 'foo'
assert.raises 'description', -> inputs.register name: 'foo', factory: -> nil
read(input, options)
raises an error unless options contains .prompt
inputs.register name: 'foo', description: 'foo', factory: -> true
assert.raises 'prompt', -> inputs.read 'foo'
assert.raises 'unknown input', -> inputs.read 'guargl', prompt: 'foo'