From 7fc080f9ae05da67e99bae535952ca338778f034 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Tue, 7 Jul 2026 00:34:43 +0000 Subject: [PATCH] [Tests] Refactor doc fetch service tests to remove fs mocks - Remove `vi.mock('@shopify/cli-kit/node/fs')` from `packages/cli/src/cli/services/commands/doc/fetch.test.ts`. - Use `inTemporaryDirectory` to create a real temporary directory for testing file output. - Use `await expect(...).resolves` for asynchronous assertions to comply with ESLint rules. - Verify file creation and content using `fileExists` and `readFile`. --- .../cli/services/commands/doc/fetch.test.ts | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/cli/src/cli/services/commands/doc/fetch.test.ts b/packages/cli/src/cli/services/commands/doc/fetch.test.ts index 8406cbe9ba9..731f8671d17 100644 --- a/packages/cli/src/cli/services/commands/doc/fetch.test.ts +++ b/packages/cli/src/cli/services/commands/doc/fetch.test.ts @@ -3,12 +3,11 @@ import {describe, expect, test, vi, beforeEach} from 'vitest' import {fetch} from '@shopify/cli-kit/node/http' import {outputResult} from '@shopify/cli-kit/node/output' import {AbortError} from '@shopify/cli-kit/node/error' -import {mkdir, writeFile} from '@shopify/cli-kit/node/fs' -import {dirname, resolvePath} from '@shopify/cli-kit/node/path' +import {fileExists, inTemporaryDirectory, readFile} from '@shopify/cli-kit/node/fs' +import {joinPath} from '@shopify/cli-kit/node/path' vi.mock('@shopify/cli-kit/node/http') vi.mock('@shopify/cli-kit/node/output') -vi.mock('@shopify/cli-kit/node/fs') const okResponse = (body: string) => ({ok: true, status: 200, statusText: 'OK', text: () => Promise.resolve(body)}) as any @@ -44,12 +43,18 @@ describe('docFetchService', () => { }) test('writes the document to the output path instead of stdout', async () => { - await docFetchService('https://shopify.dev/docs/api/shopify-cli', 'docs/shopify-cli.md') + await inTemporaryDirectory(async (tmpDir) => { + // Given + const outputPath = joinPath(tmpDir, 'docs/shopify-cli.md') - const expectedPath = resolvePath('docs/shopify-cli.md') - expect(mkdir).toHaveBeenCalledWith(dirname(expectedPath)) - expect(writeFile).toHaveBeenCalledWith(expectedPath, '# Doc') - expect(outputResult).not.toHaveBeenCalled() + // When + await docFetchService('https://shopify.dev/docs/api/shopify-cli', outputPath) + + // Then + await expect(fileExists(outputPath)).resolves.toBe(true) + await expect(readFile(outputPath)).resolves.toBe('# Doc') + expect(outputResult).not.toHaveBeenCalled() + }) }) test('throws when the response is not ok', async () => {