From 255922244ae8ebe904c898382391eade72c944dc Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 29 Dec 2020 09:18:48 +0300 Subject: [PATCH] add mock permission service to core testing lib --- .../core/testing/src/lib/services/index.ts | 1 + .../lib/services/mock-permission.service.ts | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts diff --git a/npm/ng-packs/packages/core/testing/src/lib/services/index.ts b/npm/ng-packs/packages/core/testing/src/lib/services/index.ts index 24206d7c5d..128750c0bc 100644 --- a/npm/ng-packs/packages/core/testing/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/testing/src/lib/services/index.ts @@ -1 +1,2 @@ +export * from './mock-permission.service'; export * from './mock-rest.service'; diff --git a/npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts b/npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts new file mode 100644 index 0000000000..81bbdcc625 --- /dev/null +++ b/npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts @@ -0,0 +1,34 @@ +import { ConfigStateService, PermissionService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class MockPermissionService extends PermissionService { + constructor(protected configState: ConfigStateService) { + super(configState); + this.grantAllPolicies(); + } + + grantAllPolicies() { + const grantedPolicies = new Proxy( + {}, + { + get() { + return true; + }, + }, + ); + + this.configState['store'].deepPatch({ auth: { grantedPolicies } }); + } + + grantPolicies(keys: string[]) { + const grantedPolicies = keys.reduce((policies, key) => { + policies[key] = true; + return policies; + }, {}); + + this.configState['store'].deepPatch({ auth: { grantedPolicies } }); + } +}