const twitter = require('../lib/Adapters/Auth/twitter'); describe('Twitter Auth', () => { it('should use the proper configuration', () => { // Multiple options, consumer_key found expect( twitter.handleMultipleConfigurations( { consumer_key: 'hello', }, [ { consumer_key: 'hello', }, { consumer_key: 'world', }, ] ).consumer_key ).toEqual('hello'); // Multiple options, consumer_key not found expect(function() { twitter.handleMultipleConfigurations( { consumer_key: 'some', }, [ { consumer_key: 'hello', }, { consumer_key: 'world', }, ] ); }).toThrow(); // Multiple options, consumer_key not found expect(function() { twitter.handleMultipleConfigurations( { auth_token: 'token', }, [ { consumer_key: 'hello', }, { consumer_key: 'world', }, ] ); }).toThrow(); // Single configuration and consumer_key set expect( twitter.handleMultipleConfigurations( { consumer_key: 'hello', }, { consumer_key: 'hello', } ).consumer_key ).toEqual('hello'); // General case, only 1 config, no consumer_key set expect( twitter.handleMultipleConfigurations( { auth_token: 'token', }, { consumer_key: 'hello', } ).consumer_key ).toEqual('hello'); }); it('Should fail with missing options', done => { try { twitter.validateAuthData( { consumer_key: 'key', consumer_secret: 'secret', auth_token: 'token', auth_token_secret: 'secret', }, undefined ); } catch (error) { jequal(error.message, 'Twitter auth configuration missing'); done(); } }); });