Exemple #1
0
  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'
    });
  });
Exemple #2
0
      .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) =>
Exemple #3
0
    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`);
      }
    });
Exemple #4
0
    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);
    });
Exemple #5
0
    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);
    });
Exemple #6
0
    it('passes when entity service exists and `entityId` property is set', () => {
      app.get('authentication').entityId = 'id';
      app.use('/users', {
        async get () {
          return {};
        }
      });

      app.setup();
    });
Exemple #7
0
    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 ]);
    });
Exemple #8
0
  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());
  });
Exemple #9
0
    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());
    });
Exemple #10
0
    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);
    });