diff --git a/src/app/+search-page/paginated-search-options.model.spec.ts b/src/app/+search-page/paginated-search-options.model.spec.ts new file mode 100644 index 0000000000..e58953c707 --- /dev/null +++ b/src/app/+search-page/paginated-search-options.model.spec.ts @@ -0,0 +1,42 @@ +import 'rxjs/add/observable/of'; +import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model'; +import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model'; +import { PaginatedSearchOptions } from './paginated-search-options.model'; +import { ViewMode } from './search-options.model'; + +describe('PaginatedSearchOptions', () => { + let options: PaginatedSearchOptions; + const sortOptions = new SortOptions('test.field', SortDirection.DESC); + const pageOptions = Object.assign(new PaginationComponentOptions(), { pageSize: 40, page: 1 }); + const filters = { 'f.test': ['value'], 'f.example': ['another value', 'second value'] }; + const query = 'search query'; + const scope = '0fde1ecb-82cc-425a-b600-ac3576d76b47'; + const baseUrl = 'www.rest.com'; + beforeEach(() => { + options = new PaginatedSearchOptions(); + options.sort = sortOptions; + options.pagination = pageOptions; + options.filters = filters; + options.query = query; + options.scope = scope; + options.view = ViewMode.Grid; + }); + + describe('when toRestUrl is called', () => { + + it('should generate a string with all parameters that are present', () => { + const outcome = options.toRestUrl(baseUrl); + expect(outcome).toEqual('www.rest.com?' + + 'sort=test.field,DESC&' + + 'page=0&' + + 'size=40&' + + 'query=search query&' + + 'scope=0fde1ecb-82cc-425a-b600-ac3576d76b47&' + + 'f.test=value,query&' + + 'f.example=another value,query&' + + 'f.example=second value,query' + ); + }); + + }); +}); diff --git a/src/app/+search-page/search-options.model.spec.ts b/src/app/+search-page/search-options.model.spec.ts new file mode 100644 index 0000000000..a71d8a7427 --- /dev/null +++ b/src/app/+search-page/search-options.model.spec.ts @@ -0,0 +1,33 @@ +import 'rxjs/add/observable/of'; +import { PaginatedSearchOptions } from './paginated-search-options.model'; +import { SearchOptions, ViewMode } from './search-options.model'; + +describe('SearchOptions', () => { + let options: PaginatedSearchOptions; + const filters = { 'f.test': ['value'], 'f.example': ['another value', 'second value'] }; + const query = 'search query'; + const scope = '0fde1ecb-82cc-425a-b600-ac3576d76b47'; + const baseUrl = 'www.rest.com'; + beforeEach(() => { + options = new SearchOptions(); + options.filters = filters; + options.query = query; + options.scope = scope; + options.view = ViewMode.Grid; + }); + + describe('when toRestUrl is called', () => { + + it('should generate a string with all parameters that are present', () => { + const outcome = options.toRestUrl(baseUrl); + expect(outcome).toEqual('www.rest.com?' + + 'query=search query&' + + 'scope=0fde1ecb-82cc-425a-b600-ac3576d76b47&' + + 'f.test=value,query&' + + 'f.example=another value,query&' + + 'f.example=second value,query' + ); + }); + + }); +});