Spaces:
Running
on
T4
Running
on
T4
; | |
describe("matchAt", function () { | |
var matchAt; | |
beforeEach(function () { | |
matchAt = require("../matchAt.js"); | |
}); | |
it("matches a simple regex", function () { | |
expect(matchAt(/l/, "hello", 0)).toBe(null); | |
expect(matchAt(/l/, "hello", 1)).toBe(null); | |
expect(matchAt(/l/, "hello", 4)).toBe(null); | |
expect(matchAt(/l/, "hello", 5)).toBe(null); | |
var match = matchAt(/l/, "hello", 2); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(2); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe("l"); | |
expect(match[1]).toBe(undefined); | |
expect(match.length).toBe(1); | |
var match = matchAt(/l/, "hello", 3); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(3); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe("l"); | |
expect(match[1]).toBe(undefined); | |
expect(match.length).toBe(1); | |
}); | |
it("matches a zero-length regex", function () { | |
expect(matchAt(/(?=l)/, "hello", 0)).toBe(null); | |
expect(matchAt(/(?=l)/, "hello", 1)).toBe(null); | |
expect(matchAt(/(?=l)/, "hello", 4)).toBe(null); | |
expect(matchAt(/(?=l)/, "hello", 5)).toBe(null); | |
var match = matchAt(/(?=l)/, "hello", 2); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(2); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe(""); | |
expect(match[1]).toBe(undefined); | |
expect(match.length).toBe(1); | |
var match = matchAt(/(?=l)/, "hello", 3); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(3); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe(""); | |
expect(match[1]).toBe(undefined); | |
expect(match.length).toBe(1); | |
}); | |
it("matches a regex with capturing groups", function () { | |
expect(matchAt(/(l)(l)?/, "hello", 0)).toBe(null); | |
expect(matchAt(/(l)(l)?/, "hello", 1)).toBe(null); | |
expect(matchAt(/(l)(l)?/, "hello", 4)).toBe(null); | |
expect(matchAt(/(l)(l)?/, "hello", 5)).toBe(null); | |
var match = matchAt(/(l)(l)?/, "hello", 2); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(2); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe("ll"); | |
expect(match[1]).toBe("l"); | |
expect(match[2]).toBe("l"); | |
expect(match.length).toBe(3); | |
var match = matchAt(/(l)(l)?/, "hello", 3); | |
expect(Array.isArray(match)).toBe(true); | |
expect(match.index).toBe(3); | |
expect(match.input).toBe("hello"); | |
expect(match[0]).toBe("l"); | |
expect(match[1]).toBe("l"); | |
expect(match[2]).toBe(undefined); | |
expect(match.length).toBe(3); | |
}); | |
it("copies flags over", function () { | |
expect(matchAt(/L/i, "hello", 0)).toBe(null); | |
expect(matchAt(/L/i, "hello", 1)).toBe(null); | |
expect(matchAt(/L/i, "hello", 2)).not.toBe(null); | |
expect(matchAt(/L/i, "hello", 3)).not.toBe(null); | |
expect(matchAt(/L/i, "hello", 4)).toBe(null); | |
expect(matchAt(/L/i, "hello", 5)).toBe(null); | |
}); | |
}); |