71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
describe('HtmlSpecFilterV2', function() {
|
|
describe('When both query parameters are falsy', function() {
|
|
it('matches everything', function() {
|
|
const specFilter = new privateUnderTest.HtmlSpecFilterV2({
|
|
filterParams() {
|
|
return { path: '', spec: '' };
|
|
}
|
|
});
|
|
|
|
expect(specFilter.matches({})).toBeTrue();
|
|
});
|
|
});
|
|
|
|
describe('When the path parameter is truthy', function() {
|
|
it('matches a spec with the exact same path', function() {
|
|
const specFilter = new privateUnderTest.HtmlSpecFilterV2({
|
|
filterParams() {
|
|
return { path: '["a","b","c"]', spec: '' };
|
|
}
|
|
});
|
|
|
|
expect(specFilter.matches(stubSpec(['a', 'b', 'c']))).toBeTrue();
|
|
});
|
|
|
|
it('matches a spec whose path has the filter path as a prefix', function() {
|
|
const specFilter = new privateUnderTest.HtmlSpecFilterV2({
|
|
filterParams() {
|
|
return { path: '["a","b"]', spec: '' };
|
|
}
|
|
});
|
|
|
|
expect(specFilter.matches(stubSpec(['a', 'b', 'c']))).toBeTrue();
|
|
});
|
|
|
|
it('does not match a spec with a different path', function() {
|
|
const specFilter = new privateUnderTest.HtmlSpecFilterV2({
|
|
filterParams() {
|
|
return { path: '["a","b","c"]', spec: '' };
|
|
}
|
|
});
|
|
|
|
expect(specFilter.matches(stubSpec(['a', 'd', 'c']))).toBeFalse();
|
|
});
|
|
});
|
|
|
|
describe('When the path parameter is falsy and the spec parameter is truthy', function() {
|
|
it('matches specs with full names containing the parameter value', function() {
|
|
const specFilter = new privateUnderTest.HtmlSpecFilterV2({
|
|
filterParams() {
|
|
return { path: '', spec: 'bar' };
|
|
}
|
|
});
|
|
|
|
expect(specFilter.matches(stubSpec('', 'foo bar baz'))).toBeTrue();
|
|
expect(specFilter.matches(stubSpec('', 'foo baz'))).toBeFalse();
|
|
expect(specFilter.matches(stubSpec('', 'sandbars'))).toBeTrue();
|
|
});
|
|
});
|
|
|
|
function stubSpec(path, fullName) {
|
|
return {
|
|
getPath() {
|
|
return path;
|
|
},
|
|
getFullName() {
|
|
return fullName;
|
|
}
|
|
};
|
|
}
|
|
});
|