This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/static/js/directives/ui/regex-match-view/regex-match-view.component.spec.ts

45 lines
1.4 KiB
TypeScript
Raw Normal View History

2019-11-12 16:09:47 +00:00
import { RegexMatchViewComponent } from './regex-match-view.component';
describe("RegexMatchViewComponent", () => {
var component: RegexMatchViewComponent;
beforeEach(() => {
component = new RegexMatchViewComponent();
});
describe("filterMatches", () => {
var items: ({value: string})[];
beforeEach(() => {
items = [{value: "heads/master"}, {value: "heads/develop"}, {value: "heads/production"}];
});
it("returns null if given invalid regex expression", () => {
var regexstr: string = "\\asfd\\";
expect(component.filterMatches(regexstr, items, true)).toBe(null);
});
it("returns a subset of given items matching the given regex expression if given 'shouldMatch' as true", () => {
var regexstr: string = `^${items[0].value}$`;
var matches: ({value: string})[] = component.filterMatches(regexstr, items, true);
expect(matches.length).toBeGreaterThan(0);
matches.forEach((match) => {
expect(items).toContain(match);
});
});
it("returns a subset of given items not matching the given regex expression if given 'shouldMatch' as false", () => {
var regexstr: string = `^${items[0].value}$`;
var nonMatches: ({value: string})[] = component.filterMatches(regexstr, items, false);
expect(nonMatches.length).toBeGreaterThan(0);
nonMatches.forEach((nonMatch) => {
expect(items).toContain(nonMatch);
});
});
});
});