diff --git a/packages/auth/src/Domain/Feature/FeatureService.spec.ts b/packages/auth/src/Domain/Feature/FeatureService.spec.ts index e5ba7369a..80fc9c5f2 100644 --- a/packages/auth/src/Domain/Feature/FeatureService.spec.ts +++ b/packages/auth/src/Domain/Feature/FeatureService.spec.ts @@ -181,9 +181,9 @@ describe('FeatureService', () => { describe('offline subscribers', () => { it('should return user features with `expires_at` field', async () => { - const featuresResponse = await createService().getFeaturesForOfflineUser('test@test.com') + const features = await createService().getFeaturesForOfflineUser('test@test.com') - expect(featuresResponse.features).toEqual( + expect(features).toEqual( expect.arrayContaining([ expect.objectContaining({ identifier: 'org.standardnotes.theme-autobiography', @@ -196,7 +196,7 @@ describe('FeatureService', () => { it('should not return user features if a subscription could not be found', async () => { offlineUserSubscriptionRepository.findByEmail = jest.fn().mockReturnValue([]) - expect(await createService().getFeaturesForOfflineUser('test@test.com')).toEqual({ features: [], roles: [] }) + expect(await createService().getFeaturesForOfflineUser('test@test.com')).toEqual([]) }) }) diff --git a/packages/auth/src/Domain/Feature/FeatureService.ts b/packages/auth/src/Domain/Feature/FeatureService.ts index 94b7ef74c..dac9853dd 100644 --- a/packages/auth/src/Domain/Feature/FeatureService.ts +++ b/packages/auth/src/Domain/Feature/FeatureService.ts @@ -21,7 +21,7 @@ export class FeatureService implements FeatureServiceInterface { @inject(TYPES.Timer) private timer: TimerInterface, ) {} - async getFeaturesForOfflineUser(email: string): Promise<{ features: FeatureDescription[]; roles: Role[] }> { + async getFeaturesForOfflineUser(email: string): Promise { const userSubscriptions = await this.offlineUserSubscriptionRepository.findByEmail( email, this.timer.getTimestampInMicroseconds(), @@ -34,11 +34,7 @@ export class FeatureService implements FeatureServiceInterface { } } - const roles = [...userRolesMap.values()] - return { - features: await this.getFeaturesForSubscriptions(userSubscriptions, roles), - roles, - } + return this.getFeaturesForSubscriptions(userSubscriptions, [...userRolesMap.values()]) } async getFeaturesForUser(user: User): Promise> { diff --git a/packages/auth/src/Domain/Feature/FeatureServiceInterface.ts b/packages/auth/src/Domain/Feature/FeatureServiceInterface.ts index f5db586ae..478f7893d 100644 --- a/packages/auth/src/Domain/Feature/FeatureServiceInterface.ts +++ b/packages/auth/src/Domain/Feature/FeatureServiceInterface.ts @@ -1,9 +1,8 @@ import { FeatureDescription } from '@standardnotes/features' -import { Role } from '../Role/Role' import { User } from '../User/User' export interface FeatureServiceInterface { getFeaturesForUser(user: User): Promise> - getFeaturesForOfflineUser(email: string): Promise<{ features: FeatureDescription[]; roles: Role[] }> + getFeaturesForOfflineUser(email: string): Promise } diff --git a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.spec.ts b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.spec.ts index b82bb4189..4874f43a8 100644 --- a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.spec.ts +++ b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.spec.ts @@ -1,7 +1,5 @@ import 'reflect-metadata' import { FeatureDescription } from '@standardnotes/features' -import { RoleName } from '@standardnotes/domain-core' - import { GetUserFeatures } from './GetUserFeatures' import { UserRepositoryInterface } from '../../User/UserRepositoryInterface' import { User } from '../../User/User' @@ -23,9 +21,7 @@ describe('GetUserFeatures', () => { feature1 = { name: 'foobar' } as jest.Mocked featureService = {} as jest.Mocked featureService.getFeaturesForUser = jest.fn().mockReturnValue([feature1]) - featureService.getFeaturesForOfflineUser = jest - .fn() - .mockReturnValue({ features: [feature1], roles: [RoleName.NAMES.ProUser] }) + featureService.getFeaturesForOfflineUser = jest.fn().mockReturnValue([feature1]) }) it('should fail if a user is not found', async () => { @@ -54,8 +50,11 @@ describe('GetUserFeatures', () => { it('should return offline user features', async () => { expect(await createUseCase().execute({ email: 'test@test.com', offline: true })).toEqual({ success: true, - features: [{ name: 'foobar' }], - offlineRoles: [RoleName.NAMES.ProUser], + features: [ + { + name: 'foobar', + }, + ], }) }) }) diff --git a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.ts b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.ts index fe118f3c0..d653a4395 100644 --- a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.ts +++ b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeatures.ts @@ -15,12 +15,11 @@ export class GetUserFeatures implements UseCaseInterface { async execute(dto: GetUserFeaturesDto): Promise { if (dto.offline) { - const { features, roles } = await this.featureService.getFeaturesForOfflineUser(dto.email) + const userFeatures = await this.featureService.getFeaturesForOfflineUser(dto.email) return { success: true, - features, - offlineRoles: roles, + features: userFeatures, } } diff --git a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeaturesResponse.ts b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeaturesResponse.ts index d31ece739..199f6b4c3 100644 --- a/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeaturesResponse.ts +++ b/packages/auth/src/Domain/UseCase/GetUserFeatures/GetUserFeaturesResponse.ts @@ -1,12 +1,9 @@ import { FeatureDescription } from '@standardnotes/features' -import { Role } from './../../Role/Role' - export type GetUserFeaturesResponse = | { success: true features: FeatureDescription[] - offlineRoles?: Role[] userUuid?: string } | {