From 4d7db58d4c0b6131536f4dfa15ce44cdf900a030 Mon Sep 17 00:00:00 2001 From: Daniel Kennedy Date: Thu, 29 Jan 2026 14:06:32 -0500 Subject: [PATCH] Make the cache units tests better --- .github/workflows/cache-tests.yml | 10 +++----- .github/workflows/cache-windows-test.yml | 10 +++----- packages/cache/__tests__/restore-cache.mjs | 27 ++++++++++++++++++++++ packages/cache/__tests__/save-cache.mjs | 19 +++++++++++++++ 4 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 packages/cache/__tests__/restore-cache.mjs create mode 100644 packages/cache/__tests__/save-cache.mjs diff --git a/.github/workflows/cache-tests.yml b/.github/workflows/cache-tests.yml index 6e7e01df..05b15513 100644 --- a/.github/workflows/cache-tests.yml +++ b/.github/workflows/cache-tests.yml @@ -55,10 +55,8 @@ jobs: shell: bash run: packages/cache/__tests__/create-cache-files.sh ${{ runner.os }} ~/test-cache - # We're using node -e to call the functions directly available in the @actions/cache package - name: Save cache using saveCache() - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.saveCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/save-cache.mjs ${{ runner.os }} ${{ github.run_id }} - name: Delete cache folders before restoring shell: bash @@ -67,8 +65,7 @@ jobs: rm -rf ~/test-cache - name: Restore cache using restoreCache() with http-client - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.restoreCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}',[],{useAzureSdk: false}); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} false - name: Verify cache restored with http-client shell: bash @@ -83,8 +80,7 @@ jobs: rm -rf ~/test-cache - name: Restore cache using restoreCache() with Azure SDK - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.restoreCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} true - name: Verify cache restored with Azure SDK shell: bash diff --git a/.github/workflows/cache-windows-test.yml b/.github/workflows/cache-windows-test.yml index cb94aaec..72f91f14 100644 --- a/.github/workflows/cache-windows-test.yml +++ b/.github/workflows/cache-windows-test.yml @@ -52,10 +52,8 @@ jobs: shell: bash run: packages/cache/__tests__/create-cache-files.sh ${{ runner.os }} ~/test-cache - # We're using node -e to call the functions directly available in the @actions/cache package - name: Save cache using saveCache() - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.saveCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/save-cache.mjs ${{ runner.os }} ${{ github.run_id }} - name: Delete cache folders before restoring shell: bash @@ -64,8 +62,7 @@ jobs: rm -rf ~/test-cache - name: Restore cache using restoreCache() with http-client - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.restoreCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}',[],{useAzureSdk: false}); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} false - name: Verify cache restored with http-client shell: bash @@ -80,8 +77,7 @@ jobs: rm -rf ~/test-cache - name: Restore cache using restoreCache() with Azure SDK - run: | - node -e "(async () => { const cache = await import('./packages/cache/lib/cache.js'); await cache.restoreCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'); })().catch(e => { console.error(e); process.exit(1); })" + run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} true - name: Verify cache restored with Azure SDK shell: bash diff --git a/packages/cache/__tests__/restore-cache.mjs b/packages/cache/__tests__/restore-cache.mjs new file mode 100644 index 00000000..5de08a60 --- /dev/null +++ b/packages/cache/__tests__/restore-cache.mjs @@ -0,0 +1,27 @@ +#!/usr/bin/env node +// Helper script to restore cache for e2e testing +import * as cache from '../lib/cache.js' + +const [prefix, runId, useAzureSdk] = process.argv.slice(2) + +if (!prefix || !runId) { + console.error('Usage: restore-cache.mjs [useAzureSdk]') + process.exit(1) +} + +const key = `test-${prefix}-${runId}` +const paths = ['test-cache', '~/test-cache'] +const options = {useAzureSdk: useAzureSdk !== 'false'} + +console.log(`Restoring cache with key: ${key}`) +console.log(`Paths: ${paths.join(', ')}`) +console.log(`Using Azure SDK: ${options.useAzureSdk}`) + +const restoredKey = await cache.restoreCache(paths, key, [], options) + +if (restoredKey) { + console.log(`Cache restored with key: ${restoredKey}`) +} else { + console.error('Cache not found') + process.exit(1) +} diff --git a/packages/cache/__tests__/save-cache.mjs b/packages/cache/__tests__/save-cache.mjs new file mode 100644 index 00000000..550f42f4 --- /dev/null +++ b/packages/cache/__tests__/save-cache.mjs @@ -0,0 +1,19 @@ +#!/usr/bin/env node +// Helper script to save cache for e2e testing +import * as cache from '../lib/cache.js' + +const [prefix, runId] = process.argv.slice(2) + +if (!prefix || !runId) { + console.error('Usage: save-cache.mjs ') + process.exit(1) +} + +const key = `test-${prefix}-${runId}` +const paths = ['test-cache', '~/test-cache'] + +console.log(`Saving cache with key: ${key}`) +console.log(`Paths: ${paths.join(', ')}`) + +const cacheId = await cache.saveCache(paths, key) +console.log(`Cache saved with ID: ${cacheId}`)