From a6fade92974dbba63a7d7a07f80bb447dfdf4f5b Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Mon, 9 May 2022 01:37:06 +0200 Subject: test: use test instead of it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kristóf Marussy --- .../main/src/stores/__tests__/SharedStore.spec.ts | 161 --------------------- .../main/src/stores/__tests__/SharedStore.test.ts | 161 +++++++++++++++++++++ 2 files changed, 161 insertions(+), 161 deletions(-) delete mode 100644 packages/main/src/stores/__tests__/SharedStore.spec.ts create mode 100644 packages/main/src/stores/__tests__/SharedStore.test.ts (limited to 'packages/main/src/stores/__tests__') diff --git a/packages/main/src/stores/__tests__/SharedStore.spec.ts b/packages/main/src/stores/__tests__/SharedStore.spec.ts deleted file mode 100644 index 268ce3f..0000000 --- a/packages/main/src/stores/__tests__/SharedStore.spec.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 2021-2022 Kristóf Marussy - * - * This file is part of Sophie. - * - * Sophie is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import SharedStore from '../SharedStore'; -import type Config from '../config/Config'; -import type ProfileConfig from '../config/ProfileConfig'; -import type ServiceConfig from '../config/ServiceConfig'; - -const profileProps: ProfileConfig = { - name: 'Test profile', -}; - -const serviceProps: ServiceConfig = { - name: 'Test service', - url: 'https://example.com', -}; - -let sut: SharedStore; - -beforeEach(() => { - sut = SharedStore.create(); -}); - -describe('loadConfig', () => { - it('should load profiles with an ID', () => { - sut.loadConfig({ - profiles: [ - { - id: 'someId', - ...profileProps, - }, - ], - }); - expect(sut.profiles[0].id).toBe('someId'); - }); - - it('should generate an ID for profiles without and ID', () => { - sut.loadConfig({ - profiles: [profileProps], - }); - expect(sut.profiles[0].id).toBeDefined(); - }); - - it('should load services with an ID and a profile', () => { - sut.loadConfig({ - profiles: [ - { - id: 'someProfileId', - ...profileProps, - }, - ], - services: [ - { - id: 'someServiceId', - profile: 'someProfileId', - ...serviceProps, - }, - ], - }); - expect(sut.services[0].id).toBe('someServiceId'); - expect(sut.services[0].settings.profile).toBe(sut.profiles[0]); - }); - - it('should refuse to load a profile without a name', () => { - expect(() => { - sut.loadConfig({ - profiles: [ - { - id: 'someProfileId', - ...profileProps, - name: undefined, - }, - ], - } as unknown as Config); - }).toThrow(); - expect(sut.profiles).toHaveLength(0); - }); - - it('should load services without an ID but with a profile', () => { - sut.loadConfig({ - profiles: [ - { - id: 'someProfileId', - ...profileProps, - }, - ], - services: [ - { - profile: 'someProfileId', - ...serviceProps, - }, - ], - }); - expect(sut.services[0].id).toBeDefined(); - expect(sut.services[0].settings.profile).toBe(sut.profiles[0]); - }); - - it('should create a profile for a service with an ID but no profile', () => { - sut.loadConfig({ - services: [ - { - id: 'someServiceId', - ...serviceProps, - }, - ], - }); - expect(sut.services[0].id).toBe('someServiceId'); - expect(sut.services[0].settings.profile).toBeDefined(); - expect(sut.services[0].settings.profile.settings.name).toBe( - serviceProps.name, - ); - }); - - it('should create a profile for a service without an ID or profile', () => { - sut.loadConfig({ - services: [ - { - ...serviceProps, - }, - ], - }); - expect(sut.services[0].id).toBeDefined(); - expect(sut.services[0].settings.profile).toBeDefined(); - expect(sut.services[0].settings.profile.settings.name).toBe( - serviceProps.name, - ); - }); - - it('should refuse to load a service without a name', () => { - expect(() => { - sut.loadConfig({ - services: [ - { - id: 'someServiceId', - ...serviceProps, - name: undefined, - }, - ], - } as unknown as Config); - }).toThrow(); - expect(sut.profiles).toHaveLength(0); - expect(sut.services).toHaveLength(0); - }); -}); diff --git a/packages/main/src/stores/__tests__/SharedStore.test.ts b/packages/main/src/stores/__tests__/SharedStore.test.ts new file mode 100644 index 0000000..0ed63e3 --- /dev/null +++ b/packages/main/src/stores/__tests__/SharedStore.test.ts @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2021-2022 Kristóf Marussy + * + * This file is part of Sophie. + * + * Sophie is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import SharedStore from '../SharedStore'; +import type Config from '../config/Config'; +import type ProfileConfig from '../config/ProfileConfig'; +import type ServiceConfig from '../config/ServiceConfig'; + +const profileProps: ProfileConfig = { + name: 'Test profile', +}; + +const serviceProps: ServiceConfig = { + name: 'Test service', + url: 'https://example.com', +}; + +let sut: SharedStore; + +beforeEach(() => { + sut = SharedStore.create(); +}); + +describe('loadConfig', () => { + test('loads profiles with an ID', () => { + sut.loadConfig({ + profiles: [ + { + id: 'someId', + ...profileProps, + }, + ], + }); + expect(sut.profiles[0].id).toBe('someId'); + }); + + test('generates an ID for profiles without and ID', () => { + sut.loadConfig({ + profiles: [profileProps], + }); + expect(sut.profiles[0].id).toBeDefined(); + }); + + test('loads services with an ID and a profile', () => { + sut.loadConfig({ + profiles: [ + { + id: 'someProfileId', + ...profileProps, + }, + ], + services: [ + { + id: 'someServiceId', + profile: 'someProfileId', + ...serviceProps, + }, + ], + }); + expect(sut.services[0].id).toBe('someServiceId'); + expect(sut.services[0].settings.profile).toBe(sut.profiles[0]); + }); + + test('refuses to load a profile without a name', () => { + expect(() => { + sut.loadConfig({ + profiles: [ + { + id: 'someProfileId', + ...profileProps, + name: undefined, + }, + ], + } as unknown as Config); + }).toThrow(); + expect(sut.profiles).toHaveLength(0); + }); + + test('loads services without an ID but with a profile', () => { + sut.loadConfig({ + profiles: [ + { + id: 'someProfileId', + ...profileProps, + }, + ], + services: [ + { + profile: 'someProfileId', + ...serviceProps, + }, + ], + }); + expect(sut.services[0].id).toBeDefined(); + expect(sut.services[0].settings.profile).toBe(sut.profiles[0]); + }); + + test('creates a profile for a service with an ID but no profile', () => { + sut.loadConfig({ + services: [ + { + id: 'someServiceId', + ...serviceProps, + }, + ], + }); + expect(sut.services[0].id).toBe('someServiceId'); + expect(sut.services[0].settings.profile).toBeDefined(); + expect(sut.services[0].settings.profile.settings.name).toBe( + serviceProps.name, + ); + }); + + test('creates a profile for a service without an ID or profile', () => { + sut.loadConfig({ + services: [ + { + ...serviceProps, + }, + ], + }); + expect(sut.services[0].id).toBeDefined(); + expect(sut.services[0].settings.profile).toBeDefined(); + expect(sut.services[0].settings.profile.settings.name).toBe( + serviceProps.name, + ); + }); + + test('refuses to load a service without a name', () => { + expect(() => { + sut.loadConfig({ + services: [ + { + id: 'someServiceId', + ...serviceProps, + name: undefined, + }, + ], + } as unknown as Config); + }).toThrow(); + expect(sut.profiles).toHaveLength(0); + expect(sut.services).toHaveLength(0); + }); +}); -- cgit v1.2.3-70-g09d2