mirror of
https://gitlab.com/mobicoop/v3/service/auth.git
synced 2026-01-12 03:52:41 +00:00
update tests
This commit is contained in:
@@ -5,13 +5,14 @@ import { lastValueFrom } from 'rxjs';
|
||||
import { Action } from '../../domain/dtos/action.enum';
|
||||
import { Domain } from '../../domain/dtos/domain.enum';
|
||||
import { IMakeDecision } from '../../domain/interfaces/decision-maker';
|
||||
import { ContextItem } from '../../domain/dtos/context-item';
|
||||
import { Decision } from './decision';
|
||||
|
||||
@Injectable()
|
||||
export class OpaDecisionMaker extends IMakeDecision {
|
||||
constructor(
|
||||
private readonly configService: ConfigService,
|
||||
private readonly httpService: HttpService,
|
||||
private readonly _configService: ConfigService,
|
||||
private readonly _httpService: HttpService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
@@ -20,11 +21,11 @@ export class OpaDecisionMaker extends IMakeDecision {
|
||||
uuid: string,
|
||||
domain: Domain,
|
||||
action: Action,
|
||||
context: Array<{ name: string; value: string }>,
|
||||
context: Array<ContextItem>,
|
||||
): Promise<boolean> {
|
||||
const { data } = await lastValueFrom(
|
||||
this.httpService.post<Decision>(
|
||||
this.configService.get<string>('OPA_URL') + domain + '/' + action,
|
||||
this._httpService.post<Decision>(
|
||||
this._configService.get<string>('OPA_URL') + domain + '/' + action,
|
||||
{
|
||||
input: {
|
||||
uuid,
|
||||
|
||||
9
src/modules/authorization/domain/dtos/context-item.ts
Normal file
9
src/modules/authorization/domain/dtos/context-item.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
export class ContextItem {
|
||||
name: string;
|
||||
value: any;
|
||||
|
||||
constructor(name: string, value: any) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import { IsArray, IsNotEmpty, IsString } from 'class-validator';
|
||||
import { ContextItem } from './context-item';
|
||||
import { Action } from './action.enum';
|
||||
import { Domain } from './domain.enum';
|
||||
|
||||
@@ -16,5 +17,5 @@ export class DecisionRequest {
|
||||
action: Action;
|
||||
|
||||
@IsArray()
|
||||
context?: Array<{ name: string; value: string }>;
|
||||
context?: Array<ContextItem>;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ContextItem } from '../domain/dtos/context-item';
|
||||
import { Action } from '../domain/dtos/action.enum';
|
||||
import { Domain } from '../domain/dtos/domain.enum';
|
||||
|
||||
@@ -5,13 +6,13 @@ export class DecisionQuery {
|
||||
readonly uuid: string;
|
||||
readonly domain: Domain;
|
||||
readonly action: Action;
|
||||
readonly context: Array<{ name: string; value: string }>;
|
||||
readonly context: Array<ContextItem>;
|
||||
|
||||
constructor(
|
||||
uuid: string,
|
||||
domain: Domain,
|
||||
action: Action,
|
||||
context?: Array<{ name: string; value: string }>,
|
||||
context?: Array<ContextItem>,
|
||||
) {
|
||||
this.uuid = uuid;
|
||||
this.domain = domain;
|
||||
|
||||
@@ -3,6 +3,7 @@ import { AutomapperModule } from '@automapper/nestjs';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { OpaDecisionMaker } from '../../adapters/secondaries/opa.decision-maker';
|
||||
import { Action } from '../../domain/dtos/action.enum';
|
||||
import { ContextItem } from '../../domain/dtos/context-item';
|
||||
import { DecisionRequest } from '../../domain/dtos/decision.request';
|
||||
import { Domain } from '../../domain/dtos/domain.enum';
|
||||
import { DecisionUseCase } from '../../domain/usecases/decision.usecase';
|
||||
@@ -40,13 +41,7 @@ describe('DecisionUseCase', () => {
|
||||
decisionRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a91';
|
||||
decisionRequest.domain = Domain.user;
|
||||
decisionRequest.action = Action.create;
|
||||
decisionRequest.context = [
|
||||
{
|
||||
name: 'context1',
|
||||
value: 'value1',
|
||||
},
|
||||
];
|
||||
|
||||
decisionRequest.context = [new ContextItem('context1', 'value1')];
|
||||
expect(
|
||||
decisionUseCase.execute(
|
||||
new DecisionQuery(
|
||||
|
||||
Reference in New Issue
Block a user