it('can look up with id', () => { const result = app.lookup('/my/service/1234'); assert.strictEqual(result.service, app.service('/my/service')); assert.deepStrictEqual(result.params, { __id: '1234' }); });
.then((authResult: AuthenticationResult) => { const { accessToken } = authResult; this.authenticated = true; this.app.emit('login', authResult); this.app.emit('authenticated', authResult); return this.setAccessToken(accessToken).then(() => authResult); }).catch((error: Error) =>
it('errors when there is no secret', () => { delete app.get('authentication').secret; try { app.setup(); assert.fail('Should never get here'); } catch (error) { assert.strictEqual(error.message, `A 'secret' must be provided in your authentication configuration`); } });
it('publisher precedence and preventing publishing', done => { app.channel('test').join(c1); app.registerPublisher(() => app.channel('test')); app.service('test').registerPublisher('created', (): null => null); app.once('publish', () => done(new Error('Should never get here'))); app.service('test').create(data).then(() => done()).catch(done); });
it('.leave all child channels conditionally', () => { const c1 = { id: 1 }; const c2 = { id: 2, leave: true }; const combined = app.channel('test', 'again').join(c1, c2); combined.leave((connection: RealTimeConnection) => connection.leave); assert.strictEqual(app.channel('test').length, 1); assert.strictEqual(app.channel('again').length, 1); });
it('passes when entity service exists and `entityId` property is set', () => { app.get('authentication').entityId = 'id'; app.use('/users', { async get () { return {}; } }); app.setup(); });
it('app.channel(app.channels)', () => { const c1 = { id: 1 }; const c2 = { id: 2 }; app.channel('test').join(c1, c2); app.channel('again').join(c1); const combined = app.channel(app.channels); assert.deepStrictEqual(combined.connections, [ c1, c2 ]); });
beforeEach(() => { app = feathers(); app.use('/authentication', new AuthenticationService(app, 'authentication', { entity: 'user', service: 'users', secret: 'supersecret', authStrategies: [ 'first' ] })); app.use('/users', memory()); app.service('authentication').register('first', new Strategy1()); });
it('sets the subject authResult[entity][entityId]', async () => { app.get('authentication').entityId = 'name'; const { accessToken } = await app.service('authentication').create({ strategy: 'first', username: '******' }); const decoded = jwt.decode(accessToken); assert.strictEqual(decoded.sub, Strategy1.result.user.name.toString()); });
it('de-dupes connections', () => { const c1 = { id: 1 }; const c2 = { id: 2 }; app.channel('test').join(c1, c2); app.channel('again').join(c1); const combined = app.channel('test', 'again'); assert.ok(combined instanceof CombinedChannel); assert.strictEqual(combined.length, 2); });