UNPKG

ngx-mock-provider

Version:

ngx-mock-provider allows to easily mock any provider for Angular in unit tests

37 lines (33 loc) 890 B
/** * Examples: * 1. MockProvider({ provider: UserService, methods: ['getUserInfo', 'getUserRoles'] }); * 2. MockProvider({ * provider: UserService, * methods: ['getUserInfo'], * overwrite: { * type: 'Admin', * getUserRoles: () => Observable.of(['Admin', 'User']) * } * }); */ function MockProvider(options: { provider: any, methods?: string[], overwrite?: any }): { provide: any, useValue: any } { const fakeProvider = Array.isArray(options.methods) ? createFakeProviderWithMethods(options.methods) : {}; return { provide: options.provider, useValue: { ...fakeProvider, ...options.overwrite } }; } function createFakeProviderWithMethods(methods: string[]) { return methods.reduce((memo, curr) => { return { ...memo, [curr]: () => {} }; }, {}); } export { MockProvider };