option-parser.spec.ts 691 B

123456789101112131415161718192021222324252627
  1. import { OptionParser } from './option-parser';
  2. describe('option-parser', () => {
  3. test.concurrent.each`
  4. arg
  5. ${'aaa'}
  6. ${'5++2'}
  7. ${'5:+2'}
  8. `(".parseRange('$arg') returns null", ({ arg }) => {
  9. expect(OptionParser.parseRange(arg)).toBeNull();
  10. });
  11. test.concurrent.each`
  12. arg | start | end
  13. ${'1'} | ${1} | ${1}
  14. ${'2:1'} | ${2} | ${1}
  15. ${'2:'} | ${2} | ${-1}
  16. ${'10:-3'} | ${10} | ${-3}
  17. ${'5+2'} | ${5} | ${7}
  18. ${'5+'} | ${5} | ${5}
  19. `(
  20. ".parseRange('$arg') returns { start: $start, end : $end }",
  21. ({ arg, start, end }) => {
  22. expect(OptionParser.parseRange(arg)).toEqual({ start, end });
  23. },
  24. );
  25. });