Skip to content

Commit

Permalink
test: add inject query params defaultValue tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Dafnik committed Sep 15, 2024
1 parent cae1e21 commit 231fb26
Showing 1 changed file with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,21 @@ import { injectQueryParams } from './inject-query-params';
export class SearchComponent {
queryParams = injectQueryParams();
idParam = injectQueryParams('id', { transform: numberAttribute });
idParamDefault = injectQueryParams('id', {
transform: numberAttribute,
defaultValue: 420,
});
idParams = injectQueryParams.array('id', { transform: numberAttribute });
idParamsDefault = injectQueryParams.array('id', {
transform: numberAttribute,
defaultValue: [420, 69],
});
searchParam = injectQueryParams('query');
searchParamDefault = injectQueryParams('query', { defaultValue: 'React' });
searchParams = injectQueryParams.array('query');
searchParamsDefault = injectQueryParams.array('query', {
defaultValue: ['React', 'Vue'],
});
paramKeysList = injectQueryParams((params) => Object.keys(params));
}

Expand All @@ -37,14 +49,18 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ query: 'Angular' });
expect(instance.searchParam()).toEqual('Angular');
expect(instance.searchParamDefault()).toEqual('Angular');
expect(instance.idParam()).toEqual(null);
expect(instance.idParamDefault()).toEqual(420);
expect(instance.paramKeysList()).toEqual(['query']);

await harness.navigateByUrl('/search?query=IsCool!&id=2');

expect(instance.queryParams()).toEqual({ query: 'IsCool!', id: '2' });
expect(instance.idParam()).toEqual(2);
expect(instance.idParamDefault()).toEqual(2);
expect(instance.searchParam()).toEqual('IsCool!');
expect(instance.searchParamDefault()).toEqual('IsCool!');
expect(instance.paramKeysList()).toEqual(['query', 'id']);
});

Expand All @@ -58,12 +74,14 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ id: 'Angular' });
expect(instance.idParam()).toEqual(NaN);
expect(instance.idParamDefault()).toEqual(NaN);
expect(instance.paramKeysList()).toEqual(['id']);

await harness.navigateByUrl('/search?&id=2.2');

expect(instance.queryParams()).toEqual({ id: '2.2' });
expect(instance.idParam()).toEqual(2.2);
expect(instance.idParamDefault()).toEqual(2.2);
expect(instance.paramKeysList()).toEqual(['id']);
});

Expand All @@ -76,8 +94,15 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ query: 'Angular' });
expect(instance.searchParam()).toEqual('Angular');
expect(instance.searchParamDefault()).toEqual('Angular');
expect(instance.idParam()).toEqual(null);
expect(instance.idParamDefault()).toEqual(420);
expect(instance.paramKeysList()).toEqual(['query']);

await harness.navigateByUrl('/search', SearchComponent);

expect(instance.searchParam()).toEqual(null);
expect(instance.searchParamDefault()).toEqual('React');
});

it('returns a signal for numeric query parameters', async () => {
Expand All @@ -89,6 +114,7 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ id: '42' });
expect(instance.idParam()).toEqual(42);
expect(instance.idParamDefault()).toEqual(42);
expect(instance.paramKeysList()).toEqual(['id']);
});

Expand All @@ -101,6 +127,7 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ query: 'Hello World' });
expect(instance.searchParam()).toEqual('Hello World');
expect(instance.searchParamDefault()).toEqual('Hello World');
expect(instance.paramKeysList()).toEqual(['query']);
});

Expand All @@ -113,6 +140,7 @@ describe(injectQueryParams.name, () => {

expect(instance.queryParams()).toEqual({ query: 'Angular' });
expect(instance.searchParam()).toEqual('Angular');
expect(instance.searchParamDefault()).toEqual('Angular');
expect(instance.paramKeysList()).toEqual(['query']);
});
});
Expand All @@ -136,7 +164,9 @@ describe(injectQueryParams.array.name, () => {

expect(instance.queryParams()).toEqual({ query: ['Angular', 'Analog'] });
expect(instance.searchParams()).toEqual(['Angular', 'Analog']);
expect(instance.searchParamsDefault()).toEqual(['Angular', 'Analog']);
expect(instance.idParams()).toEqual(null);
expect(instance.idParamsDefault()).toEqual([420, 69]);
expect(instance.paramKeysList()).toEqual(['query']);

await harness.navigateByUrl('/search?query=IsCool!&query=IsNotCool&id=2');
Expand All @@ -146,7 +176,9 @@ describe(injectQueryParams.array.name, () => {
id: '2',
});
expect(instance.idParams()).toEqual([2]);
expect(instance.idParamsDefault()).toEqual([2]);
expect(instance.searchParams()).toEqual(['IsCool!', 'IsNotCool']);
expect(instance.searchParamsDefault()).toEqual(['IsCool!', 'IsNotCool']);
expect(instance.paramKeysList()).toEqual(['query', 'id']);
});

Expand All @@ -160,12 +192,14 @@ describe(injectQueryParams.array.name, () => {

expect(instance.queryParams()).toEqual({ id: ['Angular', 'Analog'] });
expect(instance.idParams()).toEqual([NaN, NaN]);
expect(instance.idParamsDefault()).toEqual([NaN, NaN]);
expect(instance.paramKeysList()).toEqual(['id']);

await harness.navigateByUrl('/search?&id=2.2&id=5');

expect(instance.queryParams()).toEqual({ id: ['2.2', '5'] });
expect(instance.idParams()).toEqual([2.2, 5]);
expect(instance.idParamsDefault()).toEqual([2.2, 5]);
expect(instance.paramKeysList()).toEqual(['id']);
});

Expand All @@ -175,7 +209,9 @@ describe(injectQueryParams.array.name, () => {

expect(instance.queryParams()).toEqual({});
expect(instance.searchParam()).toEqual(null);
expect(instance.searchParamDefault()).toEqual('React');
expect(instance.idParam()).toEqual(null);
expect(instance.idParamDefault()).toEqual(420);
expect(instance.paramKeysList()).toEqual([]);
});

Expand Down

0 comments on commit 231fb26

Please sign in to comment.