@cratis/arc 19.9.7 → 19.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/commands/Command.ts +1 -0
- package/commands/ICommand.ts +5 -0
- package/commands/for_Command/when_executing/with_allowed_severity_warning.ts +0 -1
- package/dist/cjs/commands/Command.d.ts +1 -0
- package/dist/cjs/commands/Command.d.ts.map +1 -1
- package/dist/cjs/commands/Command.js +1 -0
- package/dist/cjs/commands/Command.js.map +1 -1
- package/dist/cjs/commands/ICommand.d.ts +1 -0
- package/dist/cjs/commands/ICommand.d.ts.map +1 -1
- package/dist/cjs/queries/IObservableQueryFor.d.ts +1 -0
- package/dist/cjs/queries/IObservableQueryFor.d.ts.map +1 -1
- package/dist/cjs/queries/IQueryFor.d.ts +1 -0
- package/dist/cjs/queries/IQueryFor.d.ts.map +1 -1
- package/dist/cjs/queries/ObservableQueryFor.d.ts +1 -0
- package/dist/cjs/queries/ObservableQueryFor.d.ts.map +1 -1
- package/dist/cjs/queries/ObservableQueryFor.js +1 -0
- package/dist/cjs/queries/ObservableQueryFor.js.map +1 -1
- package/dist/cjs/queries/QueryFor.d.ts +1 -0
- package/dist/cjs/queries/QueryFor.d.ts.map +1 -1
- package/dist/cjs/queries/QueryFor.js +1 -0
- package/dist/cjs/queries/QueryFor.js.map +1 -1
- package/dist/cjs/queries/for_ObservableQueryFor/given/TestQueries.d.ts +11 -0
- package/dist/cjs/queries/for_ObservableQueryFor/given/TestQueries.d.ts.map +1 -1
- package/dist/cjs/queries/for_ObservableQueryFor/given/an_observable_query_for.d.ts +2 -1
- package/dist/cjs/queries/for_ObservableQueryFor/given/an_observable_query_for.d.ts.map +1 -1
- package/dist/cjs/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/cjs/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/cjs/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/cjs/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/cjs/queries/for_QueryFor/given/TestQueries.d.ts +11 -0
- package/dist/cjs/queries/for_QueryFor/given/TestQueries.d.ts.map +1 -1
- package/dist/cjs/queries/for_QueryFor/given/a_query_for.d.ts +2 -1
- package/dist/cjs/queries/for_QueryFor/given/a_query_for.d.ts.map +1 -1
- package/dist/cjs/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/cjs/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/esm/commands/Command.d.ts +1 -0
- package/dist/esm/commands/Command.d.ts.map +1 -1
- package/dist/esm/commands/Command.js +1 -0
- package/dist/esm/commands/Command.js.map +1 -1
- package/dist/esm/commands/ICommand.d.ts +1 -0
- package/dist/esm/commands/ICommand.d.ts.map +1 -1
- package/dist/esm/commands/for_Command/when_executing/with_allowed_severity_warning.js.map +1 -1
- package/dist/esm/queries/IObservableQueryFor.d.ts +1 -0
- package/dist/esm/queries/IObservableQueryFor.d.ts.map +1 -1
- package/dist/esm/queries/IQueryFor.d.ts +1 -0
- package/dist/esm/queries/IQueryFor.d.ts.map +1 -1
- package/dist/esm/queries/ObservableQueryFor.d.ts +1 -0
- package/dist/esm/queries/ObservableQueryFor.d.ts.map +1 -1
- package/dist/esm/queries/ObservableQueryFor.js +1 -0
- package/dist/esm/queries/ObservableQueryFor.js.map +1 -1
- package/dist/esm/queries/QueryFor.d.ts +1 -0
- package/dist/esm/queries/QueryFor.d.ts.map +1 -1
- package/dist/esm/queries/QueryFor.js +1 -0
- package/dist/esm/queries/QueryFor.js.map +1 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/TestQueries.d.ts +11 -0
- package/dist/esm/queries/for_ObservableQueryFor/given/TestQueries.d.ts.map +1 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/TestQueries.js +14 -0
- package/dist/esm/queries/for_ObservableQueryFor/given/TestQueries.js.map +1 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/an_observable_query_for.d.ts +2 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/an_observable_query_for.d.ts.map +1 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/an_observable_query_for.js +3 -1
- package/dist/esm/queries/for_ObservableQueryFor/given/an_observable_query_for.js.map +1 -1
- package/dist/esm/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.js +35 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.js.map +1 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.js +41 -0
- package/dist/esm/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.js.map +1 -0
- package/dist/esm/queries/for_QueryFor/given/TestQueries.d.ts +11 -0
- package/dist/esm/queries/for_QueryFor/given/TestQueries.d.ts.map +1 -1
- package/dist/esm/queries/for_QueryFor/given/TestQueries.js +14 -0
- package/dist/esm/queries/for_QueryFor/given/TestQueries.js.map +1 -1
- package/dist/esm/queries/for_QueryFor/given/a_query_for.d.ts +2 -1
- package/dist/esm/queries/for_QueryFor/given/a_query_for.d.ts.map +1 -1
- package/dist/esm/queries/for_QueryFor/given/a_query_for.js +3 -1
- package/dist/esm/queries/for_QueryFor/given/a_query_for.js.map +1 -1
- package/dist/esm/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.d.ts +2 -0
- package/dist/esm/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.d.ts.map +1 -0
- package/dist/esm/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.js +35 -0
- package/dist/esm/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/queries/IObservableQueryFor.ts +5 -0
- package/queries/IQueryFor.ts +5 -0
- package/queries/ObservableQueryFor.ts +1 -0
- package/queries/QueryFor.ts +1 -0
- package/queries/for_ObservableQueryFor/given/TestQueries.ts +22 -0
- package/queries/for_ObservableQueryFor/given/an_observable_query_for.ts +9 -1
- package/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.ts +45 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.ts +52 -0
- package/queries/for_QueryFor/given/TestQueries.ts +22 -0
- package/queries/for_QueryFor/given/a_query_for.ts +9 -1
- package/queries/for_QueryFor/when_performing/with_partially_missing_required_arguments.ts +45 -0
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratis/arc",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.10.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Cratis",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/Cratis/Arc.git"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
@@ -21,6 +21,11 @@ export interface IObservableQueryFor<TDataType, TArguments = object> extends IQu
|
|
|
21
21
|
readonly requiredRequestParameters: string[];
|
|
22
22
|
readonly defaultValue: TDataType;
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Gets the roles required to perform the query. An empty array means no specific roles are required.
|
|
26
|
+
*/
|
|
27
|
+
readonly roles: string[];
|
|
28
|
+
|
|
24
29
|
/**
|
|
25
30
|
* Subscribe to the query. This will create a subscription onto the server.
|
|
26
31
|
* @param {OnNextResult} callback The callback that will receive result from the server.
|
package/queries/IQueryFor.ts
CHANGED
|
@@ -15,6 +15,11 @@ export interface IQueryFor<TDataType, TArguments = object> extends IQuery, IHave
|
|
|
15
15
|
readonly requiredRequestParameters: string[];
|
|
16
16
|
readonly defaultValue: TDataType;
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Gets the roles required to perform the query. An empty array means no specific roles are required.
|
|
20
|
+
*/
|
|
21
|
+
readonly roles: string[];
|
|
22
|
+
|
|
18
23
|
/**
|
|
19
24
|
* Gets the current arguments for the query.
|
|
20
25
|
*/
|
|
@@ -35,6 +35,7 @@ export abstract class ObservableQueryFor<TDataType, TParameters = object> implem
|
|
|
35
35
|
|
|
36
36
|
abstract readonly route: string;
|
|
37
37
|
abstract readonly defaultValue: TDataType;
|
|
38
|
+
readonly roles: string[] = [];
|
|
38
39
|
abstract readonly parameterDescriptors: ParameterDescriptor[];
|
|
39
40
|
abstract get requiredRequestParameters(): string[];
|
|
40
41
|
sorting: Sorting;
|
package/queries/QueryFor.ts
CHANGED
|
@@ -29,6 +29,7 @@ export abstract class QueryFor<TDataType, TParameters = object> implements IQuer
|
|
|
29
29
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
30
30
|
readonly validation?: QueryValidator<any>;
|
|
31
31
|
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
32
|
+
readonly roles: string[] = [];
|
|
32
33
|
abstract readonly parameterDescriptors: ParameterDescriptor[];
|
|
33
34
|
abstract get requiredRequestParameters(): string[];
|
|
34
35
|
abstract defaultValue: TDataType;
|
|
@@ -76,6 +76,28 @@ export class TestObservableQueryWithRouteAndQueryArgs extends ObservableQueryFor
|
|
|
76
76
|
return ['id'];
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
constructor() {
|
|
80
|
+
super(String as Constructor, false);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface TestObservableQueryWithMultipleRequiredParametersArguments {
|
|
85
|
+
userId: string;
|
|
86
|
+
category: string;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export class TestObservableQueryWithMultipleRequiredParameters extends ObservableQueryFor<string, TestObservableQueryWithMultipleRequiredParametersArguments> {
|
|
90
|
+
readonly route = '/api/filter/{userId}/{category}';
|
|
91
|
+
readonly defaultValue = '';
|
|
92
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
93
|
+
new ParameterDescriptor('userId', String as Constructor),
|
|
94
|
+
new ParameterDescriptor('category', String as Constructor)
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
get requiredRequestParameters(): string[] {
|
|
98
|
+
return ['userId', 'category'];
|
|
99
|
+
}
|
|
100
|
+
|
|
79
101
|
constructor() {
|
|
80
102
|
super(String as Constructor, false);
|
|
81
103
|
}
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
TestObservableQuery,
|
|
6
|
+
TestEnumerableQuery,
|
|
7
|
+
TestObservableQueryWithParameterDescriptorValues,
|
|
8
|
+
TestObservableQueryWithRouteAndQueryArgs,
|
|
9
|
+
TestObservableQueryWithMultipleRequiredParameters
|
|
10
|
+
} from './TestQueries';
|
|
5
11
|
|
|
6
12
|
export class an_observable_query_for {
|
|
7
13
|
query: TestObservableQuery;
|
|
8
14
|
enumerableQuery: TestEnumerableQuery;
|
|
9
15
|
queryWithParameterDescriptorValues: TestObservableQueryWithParameterDescriptorValues;
|
|
10
16
|
queryWithRouteAndQueryArgs: TestObservableQueryWithRouteAndQueryArgs;
|
|
17
|
+
queryWithMultipleRequiredParameters: TestObservableQueryWithMultipleRequiredParameters;
|
|
11
18
|
|
|
12
19
|
constructor() {
|
|
13
20
|
this.query = new TestObservableQuery();
|
|
14
21
|
this.enumerableQuery = new TestEnumerableQuery();
|
|
15
22
|
this.queryWithParameterDescriptorValues = new TestObservableQueryWithParameterDescriptorValues();
|
|
16
23
|
this.queryWithRouteAndQueryArgs = new TestObservableQueryWithRouteAndQueryArgs();
|
|
24
|
+
this.queryWithMultipleRequiredParameters = new TestObservableQueryWithMultipleRequiredParameters();
|
|
17
25
|
}
|
|
18
26
|
}
|
package/queries/for_ObservableQueryFor/when_performing/with_partially_missing_required_arguments.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { an_observable_query_for } from '../given/an_observable_query_for';
|
|
5
|
+
import { given } from '../../../given';
|
|
6
|
+
import * as sinon from 'sinon';
|
|
7
|
+
import { createFetchHelper } from '../../../helpers/fetchHelper';
|
|
8
|
+
import { QueryResult } from '../../QueryResult';
|
|
9
|
+
|
|
10
|
+
describe('when performing with partially missing required arguments', given(an_observable_query_for, context => {
|
|
11
|
+
let result: QueryResult<string>;
|
|
12
|
+
let fetchStub: sinon.SinonStub;
|
|
13
|
+
let fetchHelper: { stubFetch: () => sinon.SinonStub; restore: () => void };
|
|
14
|
+
|
|
15
|
+
beforeEach(async () => {
|
|
16
|
+
fetchHelper = createFetchHelper();
|
|
17
|
+
fetchStub = fetchHelper.stubFetch();
|
|
18
|
+
fetchStub.resolves({
|
|
19
|
+
json: sinon.stub().resolves({}),
|
|
20
|
+
ok: true,
|
|
21
|
+
status: 200
|
|
22
|
+
} as unknown as Response);
|
|
23
|
+
|
|
24
|
+
result = await context.queryWithMultipleRequiredParameters.perform({
|
|
25
|
+
userId: 'user-1',
|
|
26
|
+
category: ''
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
fetchHelper.restore();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('should return unsuccessful result', () => {
|
|
35
|
+
result.isSuccess.should.be.false;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should return default value', () => {
|
|
39
|
+
result.data.should.equal('');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should not call fetch', () => {
|
|
43
|
+
fetchStub.should.not.have.been.called;
|
|
44
|
+
});
|
|
45
|
+
}));
|
package/queries/for_ObservableQueryFor/when_subscribing/with_partially_missing_required_arguments.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { an_observable_query_for } from '../given/an_observable_query_for';
|
|
5
|
+
import { given } from '../../../given';
|
|
6
|
+
|
|
7
|
+
import * as sinon from 'sinon';
|
|
8
|
+
import { ObservableQuerySubscription } from '../../ObservableQuerySubscription';
|
|
9
|
+
|
|
10
|
+
describe('when subscribing with partially missing required arguments', given(an_observable_query_for, context => {
|
|
11
|
+
let callback: sinon.SinonStub;
|
|
12
|
+
let subscription: ObservableQuerySubscription<string>;
|
|
13
|
+
let webSocketStub: sinon.SinonStub;
|
|
14
|
+
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
context.queryWithMultipleRequiredParameters.setOrigin('https://example.com');
|
|
17
|
+
callback = sinon.stub();
|
|
18
|
+
webSocketStub = sinon.stub(global, 'WebSocket').callsFake(() => ({
|
|
19
|
+
onopen: null,
|
|
20
|
+
onclose: null,
|
|
21
|
+
onerror: null,
|
|
22
|
+
onmessage: null,
|
|
23
|
+
close: sinon.stub(),
|
|
24
|
+
send: sinon.stub()
|
|
25
|
+
} as unknown as WebSocket));
|
|
26
|
+
|
|
27
|
+
subscription = context.queryWithMultipleRequiredParameters.subscribe(callback, {
|
|
28
|
+
userId: 'user-1',
|
|
29
|
+
category: ''
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
if (subscription) {
|
|
35
|
+
subscription.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
webSocketStub.restore();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('should return a subscription', () => {
|
|
41
|
+
subscription.should.not.be.undefined;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should not create a web socket connection', () => {
|
|
45
|
+
webSocketStub.should.not.have.been.called;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should call callback immediately with default value', () => {
|
|
49
|
+
callback.called.should.be.true;
|
|
50
|
+
callback.firstCall.args[0].isSuccess.should.be.true;
|
|
51
|
+
});
|
|
52
|
+
}));
|
|
@@ -66,6 +66,28 @@ export class TestQueryForWithParameterDescriptorValues extends QueryFor<string,
|
|
|
66
66
|
return [];
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
constructor() {
|
|
70
|
+
super(String as Constructor, false);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface TestQueryForWithMultipleRequiredParametersArguments {
|
|
75
|
+
userId: string;
|
|
76
|
+
category: string;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export class TestQueryForWithMultipleRequiredParameters extends QueryFor<string, TestQueryForWithMultipleRequiredParametersArguments> {
|
|
80
|
+
readonly route = '/api/filter/{userId}/{category}';
|
|
81
|
+
readonly defaultValue = '';
|
|
82
|
+
readonly parameterDescriptors: ParameterDescriptor[] = [
|
|
83
|
+
new ParameterDescriptor('userId', String as Constructor),
|
|
84
|
+
new ParameterDescriptor('category', String as Constructor)
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
get requiredRequestParameters(): string[] {
|
|
88
|
+
return ['userId', 'category'];
|
|
89
|
+
}
|
|
90
|
+
|
|
69
91
|
constructor() {
|
|
70
92
|
super(String as Constructor, false);
|
|
71
93
|
}
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
TestQueryFor,
|
|
6
|
+
TestEnumerableQueryFor,
|
|
7
|
+
TestQueryForWithoutRequiredParams,
|
|
8
|
+
TestQueryForWithParameterDescriptorValues,
|
|
9
|
+
TestQueryForWithMultipleRequiredParameters
|
|
10
|
+
} from './TestQueries';
|
|
5
11
|
|
|
6
12
|
export class a_query_for {
|
|
7
13
|
query: TestQueryFor;
|
|
8
14
|
enumerableQuery: TestEnumerableQueryFor;
|
|
9
15
|
queryWithoutParams: TestQueryForWithoutRequiredParams;
|
|
10
16
|
queryWithParameterDescriptorValues: TestQueryForWithParameterDescriptorValues;
|
|
17
|
+
queryWithMultipleRequiredParameters: TestQueryForWithMultipleRequiredParameters;
|
|
11
18
|
|
|
12
19
|
constructor() {
|
|
13
20
|
this.query = new TestQueryFor();
|
|
14
21
|
this.enumerableQuery = new TestEnumerableQueryFor();
|
|
15
22
|
this.queryWithoutParams = new TestQueryForWithoutRequiredParams();
|
|
16
23
|
this.queryWithParameterDescriptorValues = new TestQueryForWithParameterDescriptorValues();
|
|
24
|
+
this.queryWithMultipleRequiredParameters = new TestQueryForWithMultipleRequiredParameters();
|
|
17
25
|
}
|
|
18
26
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { a_query_for } from '../given/a_query_for';
|
|
5
|
+
import { given } from '../../../given';
|
|
6
|
+
import * as sinon from 'sinon';
|
|
7
|
+
import { createFetchHelper } from '../../../helpers/fetchHelper';
|
|
8
|
+
import { QueryResult } from '../../QueryResult';
|
|
9
|
+
|
|
10
|
+
describe('when performing with partially missing required arguments', given(a_query_for, context => {
|
|
11
|
+
let result: QueryResult<string>;
|
|
12
|
+
let fetchStub: sinon.SinonStub;
|
|
13
|
+
let fetchHelper: { stubFetch: () => sinon.SinonStub; restore: () => void };
|
|
14
|
+
|
|
15
|
+
beforeEach(async () => {
|
|
16
|
+
fetchHelper = createFetchHelper();
|
|
17
|
+
fetchStub = fetchHelper.stubFetch();
|
|
18
|
+
fetchStub.resolves({
|
|
19
|
+
json: sinon.stub().resolves({}),
|
|
20
|
+
ok: true,
|
|
21
|
+
status: 200
|
|
22
|
+
} as unknown as Response);
|
|
23
|
+
|
|
24
|
+
result = await context.queryWithMultipleRequiredParameters.perform({
|
|
25
|
+
userId: 'user-1',
|
|
26
|
+
category: ''
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
fetchHelper.restore();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('should return unsuccessful result', () => {
|
|
35
|
+
result.isSuccess.should.be.false;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should return default value', () => {
|
|
39
|
+
result.data.should.equal('');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should not call fetch', () => {
|
|
43
|
+
fetchStub.should.not.have.been.called;
|
|
44
|
+
});
|
|
45
|
+
}));
|