Files
standardnotes-app-web/packages/snjs/lib/Services/ComponentManager/ComponentManager.spec.ts
2023-08-04 09:25:28 -05:00

90 lines
2.5 KiB
TypeScript

import { PreferencesService } from '../Preferences/PreferencesService'
import { GenericItem, Environment, Platform } from '@standardnotes/models'
import {
InternalEventBusInterface,
AlertService,
DeviceInterface,
MutatorClientInterface,
ItemManagerInterface,
SyncServiceInterface,
PreferenceServiceInterface,
} from '@standardnotes/services'
import { ItemManager } from '@Lib/Services/Items/ItemManager'
import { FeaturesService } from '@Lib/Services/Features/FeaturesService'
import { SNComponentManager } from './ComponentManager'
import { SyncService } from '../Sync/SyncService'
import { LoggerInterface } from '@standardnotes/utils'
describe('featuresService', () => {
let items: ItemManagerInterface
let mutator: MutatorClientInterface
let features: FeaturesService
let alerts: AlertService
let sync: SyncServiceInterface
let prefs: PreferenceServiceInterface
let eventBus: InternalEventBusInterface
let device: DeviceInterface
let logger: LoggerInterface
const createManager = (environment: Environment, platform: Platform) => {
const manager = new SNComponentManager(
items,
mutator,
sync,
features,
prefs,
alerts,
environment,
platform,
device,
logger,
eventBus,
)
return manager
}
beforeEach(() => {
global.window = {
addEventListener: jest.fn(),
attachEvent: jest.fn(),
} as unknown as Window & typeof globalThis
logger = {} as jest.Mocked<LoggerInterface>
logger.info = jest.fn()
sync = {} as jest.Mocked<SyncService>
sync.sync = jest.fn()
items = {} as jest.Mocked<ItemManager>
items.getItems = jest.fn().mockReturnValue([])
items.addObserver = jest.fn()
mutator = {} as jest.Mocked<MutatorClientInterface>
mutator.createItem = jest.fn()
mutator.changeComponent = jest.fn().mockReturnValue({} as jest.Mocked<GenericItem>)
mutator.setItemsToBeDeleted = jest.fn()
mutator.changeItem = jest.fn()
mutator.changeFeatureRepo = jest.fn()
features = {} as jest.Mocked<FeaturesService>
prefs = {} as jest.Mocked<PreferencesService>
prefs.addEventObserver = jest.fn()
alerts = {} as jest.Mocked<AlertService>
alerts.confirm = jest.fn()
alerts.alert = jest.fn()
eventBus = {} as jest.Mocked<InternalEventBusInterface>
eventBus.publish = jest.fn()
device = {} as jest.Mocked<DeviceInterface>
})
it('should create manager', () => {
const manager = createManager(Environment.Web, Platform.MacWeb)
expect(manager).toBeDefined()
})
})