From f91e2682b7d7fb7d711d69c8ccb2f13370e9ee32 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Mon, 8 Jun 2026 00:20:46 +0000 Subject: [PATCH] [Tests] Remove filesystem mocks in result.test.ts Refactor packages/store/src/cli/services/store/execute/result.test.ts to replace vi.mock('@shopify/cli-kit/node/fs') with real filesystem operations using inTemporaryDirectory and readFile. This ensures the actual fs calls are functional and improves test reliability. --- .../cli/services/store/execute/result.test.ts | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/packages/store/src/cli/services/store/execute/result.test.ts b/packages/store/src/cli/services/store/execute/result.test.ts index efc60970e66..5b0a7dc10c8 100644 --- a/packages/store/src/cli/services/store/execute/result.test.ts +++ b/packages/store/src/cli/services/store/execute/result.test.ts @@ -1,10 +1,10 @@ import {writeOrOutputStoreExecuteResult} from './result.js' import {afterEach, beforeEach, describe, expect, test, vi} from 'vitest' -import {writeFile} from '@shopify/cli-kit/node/fs' +import {inTemporaryDirectory, readFile} from '@shopify/cli-kit/node/fs' +import {joinPath} from '@shopify/cli-kit/node/path' import {renderSuccess} from '@shopify/cli-kit/node/ui' import {mockAndCaptureOutput} from '@shopify/cli-kit/node/testing/output' -vi.mock('@shopify/cli-kit/node/fs') vi.mock('@shopify/cli-kit/node/ui') function captureStandardStreams() { @@ -42,12 +42,19 @@ describe('writeOrOutputStoreExecuteResult', () => { }) test('writes results to a file when outputFile is provided', async () => { - await writeOrOutputStoreExecuteResult({data: {shop: {name: 'Test shop'}}}, '/tmp/results.json') - - expect(writeFile).toHaveBeenCalledWith('/tmp/results.json', expect.stringContaining('Test shop')) - expect(renderSuccess).toHaveBeenCalledWith({ - headline: 'Operation succeeded.', - body: 'Results written to /tmp/results.json', + await inTemporaryDirectory(async (tmpDir) => { + // Given + const outputFile = joinPath(tmpDir, 'results.json') + + // When + await writeOrOutputStoreExecuteResult({data: {shop: {name: 'Test shop'}}}, outputFile) + + // Then + await expect(readFile(outputFile)).resolves.toContain('Test shop') + expect(renderSuccess).toHaveBeenCalledWith({ + headline: 'Operation succeeded.', + body: `Results written to ${outputFile}`, + }) }) }) @@ -86,9 +93,16 @@ describe('writeOrOutputStoreExecuteResult', () => { }) test('suppresses success rendering when writing a file in json mode', async () => { - await writeOrOutputStoreExecuteResult({data: {shop: {name: 'Test shop'}}}, '/tmp/results.json', 'json') + await inTemporaryDirectory(async (tmpDir) => { + // Given + const outputFile = joinPath(tmpDir, 'results.json') - expect(writeFile).toHaveBeenCalledWith('/tmp/results.json', expect.stringContaining('Test shop')) - expect(renderSuccess).not.toHaveBeenCalled() + // When + await writeOrOutputStoreExecuteResult({data: {shop: {name: 'Test shop'}}}, outputFile, 'json') + + // Then + await expect(readFile(outputFile)).resolves.toContain('Test shop') + expect(renderSuccess).not.toHaveBeenCalled() + }) }) })