From 7e9025ab265dbb1b8ceb3a8553d0f66e42689a04 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Sat, 27 Jun 2026 00:36:46 +0000 Subject: [PATCH] [Tests] Add coverage for ensureThemeStore utility Add a new unit test suite for the `ensureThemeStore` function in `packages/theme/src/cli/utilities/theme-store.ts`. This improves coverage for the critical CLI flow of ensuring a theme store is correctly identified and persisted. The tests cover: - Store provided via flags. - Store retrieved from local storage when no flag is provided. - AbortError thrown when no store is found. --- .../src/cli/utilities/theme-store.test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 packages/theme/src/cli/utilities/theme-store.test.ts diff --git a/packages/theme/src/cli/utilities/theme-store.test.ts b/packages/theme/src/cli/utilities/theme-store.test.ts new file mode 100644 index 00000000000..fc4ff19418f --- /dev/null +++ b/packages/theme/src/cli/utilities/theme-store.test.ts @@ -0,0 +1,45 @@ +import {ensureThemeStore} from './theme-store.js' +import {getThemeStore, setThemeStore} from '../services/local-storage.js' +import {describe, expect, test, vi} from 'vitest' +import {recordError} from '@shopify/cli-kit/node/analytics' + +vi.mock('../services/local-storage.js') +vi.mock('@shopify/cli-kit/node/analytics') + +vi.mocked(recordError).mockImplementation((error) => error) + +describe('ensureThemeStore', () => { + test('returns the store from flags if provided and sets it in local storage', () => { + // Given + const flags = {store: 'example.myshopify.com'} + + // When + const result = ensureThemeStore(flags) + + // Then + expect(result).toBe('example.myshopify.com') + expect(setThemeStore).toHaveBeenCalledWith('example.myshopify.com') + }) + + test('returns the store from local storage if flag is not provided', () => { + // Given + const flags = {store: undefined} + vi.mocked(getThemeStore).mockReturnValue('stored.myshopify.com') + + // When + const result = ensureThemeStore(flags) + + // Then + expect(result).toBe('stored.myshopify.com') + expect(setThemeStore).toHaveBeenCalledWith('stored.myshopify.com') + }) + + test('throws AbortError if store is not provided and not in local storage', () => { + // Given + const flags = {store: undefined} + vi.mocked(getThemeStore).mockReturnValue(undefined) + + // When / Then + expect(() => ensureThemeStore(flags)).toThrow('A store is required') + }) +})