mirror of
https://github.com/standardnotes/server
synced 2026-07-14 00:01:54 -04:00
fix(auth): saving subscription plan name in session traces
This commit is contained in:
@@ -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,
|
||||
},
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user