File: disect_spec.lua

package info (click to toggle)
lua-cliargs 3.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 388 kB
  • sloc: sh: 118; javascript: 14; makefile: 5
file content (30 lines) | stat: -rw-r--r-- 1,075 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
local disect = require('cliargs.utils.disect')

describe("utils::disect", function()
  local function assert_disect(pattern, expected)
    it("works with '" .. pattern .. "'", function()
      local k, ek, v = disect(pattern)

      assert.equal(k, expected[1])
      assert.equal(ek, expected[2])
      assert.equal(v, expected[3])
    end)
  end

  assert_disect("-q", { 'q', nil, nil })
  assert_disect("-Wno-unsigned", { 'Wno-unsigned', nil, nil })
  assert_disect("-q, --quiet", { 'q', 'quiet', nil })
  assert_disect("-q --quiet", { 'q', 'quiet', nil })

  -- now with value indicators
  assert_disect("-v VALUE", { 'v', nil, 'VALUE' })
  assert_disect("-v=VALUE", { 'v', nil, 'VALUE' })

  assert_disect("--value VALUE", { nil, 'value', 'VALUE' })
  assert_disect("--value=VALUE", { nil, 'value', 'VALUE' })

  assert_disect("-v --value=VALUE", { 'v', 'value', 'VALUE' })
  assert_disect("-v --value VALUE", { 'v', 'value', 'VALUE' })
  assert_disect("-v, --value=VALUE", { 'v', 'value', 'VALUE' })
  assert_disect("-v, --value VALUE", { 'v', 'value', 'VALUE' })
end)