Skip to content

Commit d4ba6bb

Browse files
committed
test: Add test on the boolean query params
1 parent d00d837 commit d4ba6bb

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

test/functional/action-params.spec.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { createExpressServer, getMetadataArgsStorage } from '../../src/index';
2929
import { SessionMiddleware } from '../fakes/global-options/SessionMiddleware';
3030
import { axios } from '../utilities/axios';
3131
import DoneCallback = jest.DoneCallback;
32-
import { Type } from 'class-transformer';
32+
import { Type, Transform } from 'class-transformer';
3333

3434
describe(``, () => {
3535
let expressServer: HttpServer;
@@ -128,6 +128,11 @@ describe(``, () => {
128128
@Type(() => Number)
129129
multipleNumberValues?: number[];
130130

131+
@IsArray()
132+
@IsBoolean({ each: true })
133+
@Transform(value => (Array.isArray(value) ? value.map(v => v !== 'false') : value !== 'false'))
134+
multipleBooleanValues?: boolean[];
135+
131136
@IsArray()
132137
@IsDate({ each: true })
133138
@Type(() => Date)
@@ -533,7 +538,7 @@ describe(``, () => {
533538
*/
534539

535540
it("@QueryParams should give a proper values from request's query parameters", async () => {
536-
expect.assertions(9);
541+
expect.assertions(10);
537542
const response = await axios.get(
538543
'/photos-params?' +
539544
'sortBy=name&' +
@@ -544,6 +549,8 @@ describe(``, () => {
544549
'multipleStringValues=b&' +
545550
'multipleNumberValues=1&' +
546551
'multipleNumberValues=2.3&' +
552+
'multipleBooleanValues=false&' +
553+
'multipleBooleanValues=true&' +
547554
'multipleDateValues=2017-02-01T00:00:00Z&' +
548555
'multipleDateValues=2017-03-01T00:00:00Z'
549556
);
@@ -555,14 +562,15 @@ describe(``, () => {
555562
expect(queryParams1.showAll).toEqual(true);
556563
expect(queryParams1.multipleStringValues).toEqual(['a', 'b']);
557564
expect(queryParams1.multipleNumberValues).toEqual([1, 2.3]);
565+
expect(queryParams1.multipleBooleanValues).toEqual([false, true]);
558566
expect(queryParams1.multipleDateValues).toEqual([
559567
new Date('2017-02-01T00:00:00Z'),
560568
new Date('2017-03-01T00:00:00Z'),
561569
]);
562570
});
563571

564572
it("@QueryParams should give a proper values from request's query parameters and one multiple value", async () => {
565-
expect.assertions(9);
573+
expect.assertions(10);
566574
const response = await axios.get(
567575
'/photos-params?' +
568576
'sortBy=name&' +
@@ -571,6 +579,7 @@ describe(``, () => {
571579
'showAll&' +
572580
'multipleStringValues=a&' +
573581
'multipleNumberValues=1&' +
582+
'multipleBooleanValues=true&' +
574583
'multipleDateValues=2017-02-01T01:00:00Z'
575584
);
576585
expect(response.status).toEqual(HttpStatusCodes.OK);
@@ -581,11 +590,12 @@ describe(``, () => {
581590
expect(queryParams1.showAll).toEqual(true);
582591
expect(queryParams1.multipleStringValues).toEqual(['a']);
583592
expect(queryParams1.multipleNumberValues).toEqual([1]);
593+
expect(queryParams1.multipleBooleanValues).toEqual([true]);
584594
expect(queryParams1.multipleDateValues).toEqual([new Date('2017-02-01T01:00:00Z')]);
585595
});
586596

587597
it("@QueryParams should give a proper values from request's query parameters with nested json", async () => {
588-
expect.assertions(12);
598+
expect.assertions(13);
589599
const response = await axios.get(
590600
'/photos-params?' +
591601
'sortBy=name&' +
@@ -597,6 +607,8 @@ describe(``, () => {
597607
'multipleStringValues=b&' +
598608
'multipleNumberValues=1&' +
599609
'multipleNumberValues=2.3&' +
610+
'multipleBooleanValues=false&' +
611+
'multipleBooleanValues=true&' +
600612
'multipleDateValues=2017-02-01T00:00:00Z'
601613
);
602614
expect(response.status).toEqual(HttpStatusCodes.OK);
@@ -610,6 +622,7 @@ describe(``, () => {
610622
expect(queryParams1.myObject.isFive).toEqual(true);
611623
expect(queryParams1.multipleStringValues).toEqual(['a', 'b']);
612624
expect(queryParams1.multipleNumberValues).toEqual([1, 2.3]);
625+
expect(queryParams1.multipleBooleanValues).toEqual([false, true]);
613626
expect(queryParams1.multipleDateValues).toEqual([new Date('2017-02-01T00:00:00Z')]);
614627
});
615628

0 commit comments

Comments
 (0)