diff --git a/emvar-lite/mod.ts b/emvar-lite/mod.ts index 5193fbc..16991a5 100644 --- a/emvar-lite/mod.ts +++ b/emvar-lite/mod.ts @@ -143,12 +143,12 @@ export class Checker { return range } range = range.trim(); - if (range.indexOf('&&') !== -1) { - return rangeAnd(...range.split('&&').map(x => Checker.parse(x))); - } if (range.indexOf('||') !== -1) { return rangeOr(...range.split('||').map(x => Checker.parse(x))); } + if (range.indexOf('&&') !== -1) { + return rangeAnd(...range.split('&&').map(x => Checker.parse(x))); + } if (range === '*') return new Checker((version) => { EmVar.from(version) return true diff --git a/emvar-lite/test.ts b/emvar-lite/test.ts index 3280ee8..93ac26b 100644 --- a/emvar-lite/test.ts +++ b/emvar-lite/test.ts @@ -226,4 +226,15 @@ test(">1 && =1.2 || =2", () => { expect(checker.check("2")).toBe(true); expect(checker.check("3")).toBe(false); +}) + +test("&& before || order of operationns: <1.5 && >1 || >1.5 && <3", () => { + const checker = rangeOf("<1.5 && >1 || >1.5 && <3"); + expect(checker.check("1.1")).toBe(true); + expect(checker.check("2")).toBe(true); + + expect(checker.check("1.5")).toBe(false); + expect(checker.check("1")).toBe(false); + expect(checker.check("3")).toBe(false); + }) \ No newline at end of file