Explorar el Código

fix(auth): saving subscription plan name in session traces

Karol Sójko hace 2 años
padre
commit
3064d03aa9

+ 19 - 0
packages/auth/src/Domain/Role/RoleToSubscriptionMap.spec.ts

@@ -41,4 +41,23 @@ describe('RoleToSubscriptionMap', () => {
       },
     ])
   })
+
+  it('should filter our subscription roles from an array of roles', () => {
+    const roles = [
+      {
+        name: RoleName.CoreUser,
+      } as jest.Mocked<Role>,
+      {
+        name: RoleName.FilesBetaUser,
+      } as jest.Mocked<Role>,
+      {
+        name: RoleName.PlusUser,
+      } as jest.Mocked<Role>,
+    ]
+    expect(createMap().filterSubscriptionRoles(roles)).toEqual([
+      {
+        name: RoleName.PlusUser,
+      },
+    ])
+  })
 })

+ 4 - 0
packages/auth/src/Domain/Role/RoleToSubscriptionMap.ts

@@ -17,6 +17,10 @@ export class RoleToSubscriptionMap implements RoleToSubscriptionMapInterface {
     return roles.filter((role) => this.nonSubscriptionRoles.includes(role.name as RoleName))
   }
 
+  filterSubscriptionRoles(roles: Role[]): Array<Role> {
+    return roles.filter((role) => !this.nonSubscriptionRoles.includes(role.name as RoleName))
+  }
+
   getSubscriptionNameForRoleName(roleName: RoleName): SubscriptionName | undefined {
     return this.roleNameToSubscriptionNameMap.get(roleName)
   }

+ 1 - 0
packages/auth/src/Domain/Role/RoleToSubscriptionMapInterface.ts

@@ -3,6 +3,7 @@ import { Role } from './Role'
 
 export interface RoleToSubscriptionMapInterface {
   filterNonSubscriptionRoles(roles: Role[]): Array<Role>
+  filterSubscriptionRoles(roles: Role[]): Array<Role>
   getSubscriptionNameForRoleName(roleName: RoleName): SubscriptionName | undefined
   getRoleNameForSubscriptionName(subscriptionName: SubscriptionName): RoleName | undefined
 }

+ 2 - 2
packages/auth/src/Domain/UseCase/CreateCrossServiceToken/CreateCrossServiceToken.spec.ts

@@ -67,7 +67,7 @@ describe('CreateCrossServiceToken', () => {
     userRepository.findOneByUuid = jest.fn().mockReturnValue(user)
 
     roleToSubscriptionMap = {} as jest.Mocked<RoleToSubscriptionMapInterface>
-    roleToSubscriptionMap.filterNonSubscriptionRoles = jest.fn().mockReturnValue([RoleName.NAMES.PlusUser])
+    roleToSubscriptionMap.filterSubscriptionRoles = jest.fn().mockReturnValue([RoleName.NAMES.PlusUser])
     roleToSubscriptionMap.getSubscriptionNameForRoleName = jest
       .fn()
       .mockReturnValue(SubscriptionPlanName.NAMES.PlusPlan)
@@ -170,7 +170,7 @@ describe('CreateCrossServiceToken', () => {
   })
 
   it('should trace session without a subscription role', async () => {
-    roleToSubscriptionMap.filterNonSubscriptionRoles = jest.fn().mockReturnValue([])
+    roleToSubscriptionMap.filterSubscriptionRoles = jest.fn().mockReturnValue([])
 
     await createUseCase().execute({
       user,

+ 1 - 1
packages/auth/src/Domain/UseCase/CreateCrossServiceToken/CreateCrossServiceToken.ts

@@ -102,7 +102,7 @@ export class CreateCrossServiceToken implements UseCaseInterface {
   }
 
   private getSubscriptionNameFromRoles(roles: Array<Role>): string | null {
-    const nonSubscriptionRoles = this.roleToSubscriptionMap.filterNonSubscriptionRoles(roles)
+    const nonSubscriptionRoles = this.roleToSubscriptionMap.filterSubscriptionRoles(roles)
     if (nonSubscriptionRoles.length === 0) {
       return null
     }