/* tslint:disable:no-unused-expression */ import chai from 'chai'; import chaiHttp from 'chai-http'; import app from '../../src/app'; import { clearUsers, createUser } from './helper'; chai.use(chaiHttp); const request = chai.request; const expect = chai.expect; chai.should(); describe('Authorize API', () => { describe('GET /authorize', () => { let server: ChaiHttp.Agent; beforeEach('given a user has signed up', async () => { server = request.agent(app).keepOpen(); return createUser(server, { display_name: 'Test', email: 'test@example.com', password: 'passw0rd', }); }); [undefined, ['user-read-private'], ['user-read-private', 'user-read-email']].forEach( (scopes) => { it(`works with ${scopes ? scopes.length : 0} scopes`, async () => { const res = await server .get(`/authorize`) .query({ client_id: '1', redirect_uri: encodeURIComponent('http://localhost:3000/'), response_type: 'token', scope: scopes ? encodeURIComponent(scopes.join(' ')) : undefined, }) .redirects(0); res.status .should.equal(302); res .should.redirect; }); }, ); afterEach(async () => { await clearUsers(server); server.close(); }); }); });