Skip to content

Commit ba44156

Browse files
authored
feat: support for includeInactive param in entities gql request (#549)
1 parent 6e35969 commit ba44156

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

projects/observability/src/shared/graphql/request/builders/argument/graphql-observability-argument-builder.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ export class GraphQlObservabilityArgumentBuilder extends GraphQlArgumentBuilder
2020
};
2121
}
2222

23+
public forIncludeInactive(includeInactive?: boolean): GraphQlArgument[] {
24+
return includeInactive !== undefined ? [{ name: 'includeInactive', value: includeInactive }] : [];
25+
}
2326
public forNeighborType(type: EntityType): GraphQlArgument {
2427
return {
2528
name: 'neighborType',

projects/observability/src/shared/graphql/request/handlers/entities/query/entities-graphql-query-builder.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export class EntitiesGraphqlQueryBuilderService {
3939
this.argBuilder.forTimeRange(request.timeRange),
4040
...this.argBuilder.forOffset(request.offset),
4141
...this.argBuilder.forOrderBy(request.sort),
42-
...this.buildFilters(request)
42+
...this.buildFilters(request),
43+
...this.argBuilder.forIncludeInactive(request.includeInactive)
4344
];
4445
}
4546

@@ -103,6 +104,7 @@ export interface GraphQlEntitiesRequest {
103104
sort?: GraphQlSortBySpecification;
104105
filters?: GraphQlFilter[];
105106
includeTotal?: boolean;
107+
includeInactive?: boolean;
106108
}
107109

108110
export interface EntitiesResponse {

projects/observability/src/shared/graphql/request/handlers/entities/query/entities-graphql-query-handler.service.test.ts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,22 @@ describe('Entities graphql query handler', () => {
5858
const specBuilder = new ObservabilitySpecificationBuilder();
5959
const buildRequest = (
6060
entityType: ObservabilityEntityType = ObservabilityEntityType.Service,
61-
limit: number = 30
61+
limit: number = 30,
62+
includeInactive?: boolean
6263
): GraphQlEntitiesQueryRequest => ({
6364
requestType: ENTITIES_GQL_REQUEST,
6465
entityType: entityType,
6566
timeRange: testTimeRange,
6667
properties: [specBuilder.attributeSpecificationForKey('name')],
6768
limit: limit,
68-
includeTotal: true
69+
includeTotal: true,
70+
includeInactive: includeInactive
6971
});
7072

7173
const buildRequestGraphqlSelection = (
7274
entityType: ObservabilityEntityType = ObservabilityEntityType.Service,
73-
limit: number = 30
75+
limit: number = 30,
76+
includeInactive?: boolean
7477
): GraphQlSelection => ({
7578
path: 'entities',
7679
arguments: [
@@ -82,7 +85,8 @@ describe('Entities graphql query handler', () => {
8285
startTime: new Date(testTimeRange.from),
8386
endTime: new Date(testTimeRange.to)
8487
}
85-
}
88+
},
89+
...(includeInactive !== undefined ? [{ name: 'includeInactive', value: includeInactive }] : [])
8690
],
8791
children: [
8892
{
@@ -130,6 +134,22 @@ describe('Entities graphql query handler', () => {
130134
const graphqlSelection = buildRequestGraphqlSelection(ObservabilityEntityType.Api);
131135
expect(spectator.service.convertRequest(buildRequest(ObservabilityEntityType.Api))).toEqual(graphqlSelection);
132136
});
137+
138+
test('adds includeInactive param when required', () => {
139+
const spectator = createService();
140+
expect(spectator.service.convertRequest(buildRequest(ObservabilityEntityType.Api, 30, true))).toEqual(
141+
buildRequestGraphqlSelection(ObservabilityEntityType.Api, 30, true)
142+
);
143+
144+
expect(spectator.service.convertRequest(buildRequest(ObservabilityEntityType.Api, 30, false))).toEqual(
145+
buildRequestGraphqlSelection(ObservabilityEntityType.Api, 30, false)
146+
);
147+
148+
expect(spectator.service.convertRequest(buildRequest(ObservabilityEntityType.Api, 30))).toEqual(
149+
buildRequestGraphqlSelection(ObservabilityEntityType.Api, 30)
150+
);
151+
});
152+
133153
test('converts response to entities array', fakeAsync(() => {
134154
const spectator = createService();
135155
const serverResponse = {

0 commit comments

Comments
 (0)