diff --git a/src/types/config.ts b/src/types/config.ts index 6517e81..739d688 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -73,8 +73,8 @@ export const defaultConfig: Config = { icon: "code", packageManager: "auto", - packageName: undefined, packageGlobal: false, + packageName: undefined, title: undefined, description: undefined, diff --git a/tests/fixtures/configs/preview.yml b/tests/fixtures/configs/preview.yml new file mode 100644 index 0000000..daf43f2 --- /dev/null +++ b/tests/fixtures/configs/preview.yml @@ -0,0 +1,37 @@ +path: + readme: 'README-foo.md' + +image: + url: 'https://example.com/image.png' + parameters: + pattern: 'cage' + style: 'style_1' + fontSize: '123px' + icon: 'cog' + + packageManager: 'yarn' + packageGlobal: true + packageName: 'foo/bar' + + title: 'Foo Bar' + description: 'Lorem ipsum dolor sit amet.' + +repository: + commit: + branch: 'qwerty' + title: 'Foo Bar Commit' + body: 'Eu assum suscipit, vel veniam eu sadipscing kasd invidunt elit wisi.' + + author: + name: 'some_username' + email: 'some_username@example.com' + + pullRequest: + title: 'Foo Bar Baz Pull Request' + body: 'Eu assum suscipit, vel veniam eu sadipscing kasd invidunt elit wisi.' + assignees: + - foo1 + - foo2 + labels: + - foo3 + - foo4 diff --git a/tests/unit/filesystem.test.ts b/tests/unit/filesystem.test.ts index dc7069b..6367afe 100644 --- a/tests/unit/filesystem.test.ts +++ b/tests/unit/filesystem.test.ts @@ -1,27 +1,66 @@ -import { rawTestConfig } from "../helpers/config"; -import { type Config, defaultConfig } from "../../src/types/config"; -import { readConfig } from "../../src/utils/filesystem"; -import { CONFIG_PATH } from "../../src/utils/inputs"; +import { rawTestConfig } from '../helpers/config' +import { type Config, defaultConfig } from '../../src/types/config' +import { readConfig } from '../../src/utils/filesystem' +import { CONFIG_PATH } from '../../src/utils/inputs' -test("read config", () => { - const data: Config = readConfig(rawTestConfig, CONFIG_PATH.defaultValue); +test('read config', () => { + const data: Config = readConfig(rawTestConfig, CONFIG_PATH.defaultValue) - expect(data.directory).toBe(process.cwd()); + expect(data.directory).toBe(process.cwd()) expect(data.image.parameters.packageName).toBe( - "TheDragonCode/preview-updater", - ); - expect(data.image.parameters.title).toBe("Preview Updater"); + 'TheDragonCode/preview-updater' + ) + expect(data.image.parameters.title).toBe('Preview Updater') expect(data.image.parameters.description).toBe( - "Lightweight preview update in your repository", - ); + 'Lightweight preview update in your repository' + ) - expect(data.path.readme).toBe(defaultConfig.path.readme); - expect(data.image.url).toBe(defaultConfig.image.url); + expect(data.path.readme).toBe(defaultConfig.path.readme) + expect(data.image.url).toBe(defaultConfig.image.url) expect(data.image.parameters.pattern).toBe( - defaultConfig.image.parameters.pattern, - ); + defaultConfig.image.parameters.pattern + ) - expect(data.image.parameters.packageManager).toBe("none"); - expect(data.image.parameters.icon).toBe("photograph"); -}); + expect(data.image.parameters.packageManager).toBe('none') + expect(data.image.parameters.icon).toBe('photograph') +}) + +test('custom config', () => { + const data: Config = readConfig({ + directory: process.cwd() + }, 'tests/fixtures/configs/preview.yml') + + expect(data.path.readme).toBe('README-foo.md') + + expect(data.image.url).toBe('https://example.com/image.png') + expect(data.image.parameters.pattern).toBe('cage') + expect(data.image.parameters.style).toBe('style_1') + + expect(data.image.parameters.fontSize).toBe('123px') + expect(data.image.parameters.icon).toBe('cog') + + expect(data.image.parameters.packageManager).toBe('yarn') + expect(data.image.parameters.packageGlobal).toBe(true) + expect(data.image.parameters.packageName).toBe('foo/bar') + + expect(data.image.parameters.title).toBe('Foo Bar') + expect(data.image.parameters.description).toBe('Lorem ipsum dolor sit amet.') + + expect(data.repository.commit.branch).toBe('qwerty') + expect(data.repository.commit.title).toBe('Foo Bar Commit') + expect(data.repository.commit.body).toBe('Eu assum suscipit, vel veniam eu sadipscing kasd invidunt elit wisi.') + + expect(data.repository.commit.author.name).toBe('some_username') + expect(data.repository.commit.author.email).toBe('some_username@example.com') + + expect(data.repository.pullRequest.title).toBe('Foo Bar Baz Pull Request') + expect(data.repository.pullRequest.body).toBe('Eu assum suscipit, vel veniam eu sadipscing kasd invidunt elit wisi.') + + expect(data.repository.pullRequest.assignees.length).toBe(2) + expect(data.repository.pullRequest.assignees.join('-')).toBe('foo1-foo2') + + expect(data.repository.pullRequest.labels.length).toBe(2) + expect(data.repository.pullRequest.labels.join('-')).toBe('foo3-foo4') + +})