/* * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import request from 'supertest'; import { LoginDto } from '../../src/identity/local/login.dto'; import { TestSetup, TestSetupBuilder } from '../test-setup'; describe('Groups', () => { let testSetup: TestSetup; let testuser1Session: request.SuperAgentTest; beforeEach(async () => { testSetup = await TestSetupBuilder.create().withUsers().build(); await testSetup.app.init(); // create a test group await testSetup.groupService.createGroup('testgroup1', 'testgroup1', false); // log in to create a session const loginDto: LoginDto = { password: 'testuser1', username: 'testuser1', }; testuser1Session = request.agent(testSetup.app.getHttpServer()); await testuser1Session .post('/api/private/auth/local/login') .set('Content-Type', 'application/json') .send(JSON.stringify(loginDto)) .expect(201); }); afterEach(async () => { await testSetup.app.close(); await testSetup.cleanup(); }); test('details for existing groups can be retrieved', async () => { const response = await testuser1Session.get( '/api/private/groups/testgroup1', ); expect(response.status).toBe(200); expect(response.body.name).toBe('testgroup1'); }); test('details for non-existing groups cannot be retrieved', async () => { const response = await testuser1Session.get( '/api/private/groups/i_dont_exist', ); expect(response.status).toBe(404); }); test('API requires authentication', async () => { const response = await request(testSetup.app.getHttpServer()).get( '/api/private/groups/testgroup1', ); expect(response.status).toBe(401); }); });