From 8ca57d03d8fb62e6bffc731f6029cf4e2c64af80 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 19 Aug 2024 08:23:07 +1000 Subject: [PATCH] tests(ui): add tests for getViewModeChunks --- .../util/getViewModeChunks.test.ts | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 invokeai/frontend/web/src/features/stylePresets/util/getViewModeChunks.test.ts diff --git a/invokeai/frontend/web/src/features/stylePresets/util/getViewModeChunks.test.ts b/invokeai/frontend/web/src/features/stylePresets/util/getViewModeChunks.test.ts new file mode 100644 index 0000000000..9ef7976b76 --- /dev/null +++ b/invokeai/frontend/web/src/features/stylePresets/util/getViewModeChunks.test.ts @@ -0,0 +1,53 @@ +import { getViewModeChunks } from 'features/stylePresets/util/getViewModeChunks'; +import { describe, expect, it } from 'vitest'; + +describe('getViewModeChunks', () => { + it('should return empty strings when presetPrompt is not provided', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = undefined; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['', currentPrompt, '']); + }); + + it('should return empty strings when presetPrompt is empty', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = ''; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['', currentPrompt, '']); + }); + + it('should append presetPrompt to currentPrompt when presetPrompt does not contain PRESET_PLACEHOLDER', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = 'preset prompt'; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['', `${currentPrompt} `, presetPrompt]); + }); + + it('should split presetPrompt into 3 parts when presetPrompt contains PRESET_PLACEHOLDER', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = 'before {prompt} after'; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['before ', currentPrompt, ' after']); + }); + + it('should split presetPrompt into 3 parts when presetPrompt contains multiple PRESET_PLACEHOLDER', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = 'before {prompt} middle {prompt} after'; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['before ', currentPrompt, ' middle {prompt} after']); + }); + + it('should handle the PRESET_PLACEHOLDER being at the start of the presetPrompt', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = '{prompt} after'; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['', currentPrompt, ' after']); + }); + + it('should handle the PRESET_PLACEHOLDER being at the end of the presetPrompt', () => { + const currentPrompt = 'current prompt'; + const presetPrompt = 'before {prompt}'; + const result = getViewModeChunks(currentPrompt, presetPrompt); + expect(result).toEqual(['before ', currentPrompt, '']); + }); +});