mirror of https://github.com/actions/toolkit
Fix tests
parent
a762876d6d
commit
87171e29ca
|
@ -1,13 +1,13 @@
|
||||||
import * as core from '@actions/core'
|
import * as core from '@actions/core'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import {saveCache} from '../src/cache'
|
import { saveCache } from '../src/cache'
|
||||||
import * as cacheUtils from '../src/internal/cacheUtils'
|
import * as cacheUtils from '../src/internal/cacheUtils'
|
||||||
import {CacheFilename, CompressionMethod} from '../src/internal/constants'
|
import { CacheFilename, CompressionMethod } from '../src/internal/constants'
|
||||||
import * as config from '../src/internal/config'
|
import * as config from '../src/internal/config'
|
||||||
import * as tar from '../src/internal/tar'
|
import * as tar from '../src/internal/tar'
|
||||||
import {CacheServiceClientJSON} from '../src/generated/results/api/v1/cache.twirp'
|
import { CacheServiceClientJSON } from '../src/generated/results/api/v1/cache.twirp'
|
||||||
import * as cacheHttpClient from '../src/internal/cacheHttpClient'
|
import * as cacheHttpClient from '../src/internal/cacheHttpClient'
|
||||||
import {UploadOptions} from '../src/options'
|
import { UploadOptions } from '../src/options'
|
||||||
|
|
||||||
let logDebugMock: jest.SpyInstance
|
let logDebugMock: jest.SpyInstance
|
||||||
|
|
||||||
|
@ -27,11 +27,11 @@ jest.mock('@azure/storage-blob', () => ({
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
process.env['ACTIONS_RUNTIME_TOKEN'] = 'token'
|
process.env['ACTIONS_RUNTIME_TOKEN'] = 'token'
|
||||||
jest.spyOn(console, 'log').mockImplementation(() => {})
|
jest.spyOn(console, 'log').mockImplementation(() => { })
|
||||||
jest.spyOn(core, 'debug').mockImplementation(() => {})
|
jest.spyOn(core, 'debug').mockImplementation(() => { })
|
||||||
jest.spyOn(core, 'info').mockImplementation(() => {})
|
jest.spyOn(core, 'info').mockImplementation(() => { })
|
||||||
jest.spyOn(core, 'warning').mockImplementation(() => {})
|
jest.spyOn(core, 'warning').mockImplementation(() => { })
|
||||||
jest.spyOn(core, 'error').mockImplementation(() => {})
|
jest.spyOn(core, 'error').mockImplementation(() => { })
|
||||||
jest.spyOn(cacheUtils, 'resolvePaths').mockImplementation(async filePaths => {
|
jest.spyOn(cacheUtils, 'resolvePaths').mockImplementation(async filePaths => {
|
||||||
return filePaths.map(x => path.resolve(x))
|
return filePaths.map(x => path.resolve(x))
|
||||||
})
|
})
|
||||||
|
@ -99,7 +99,7 @@ test('create cache entry failure', async () => {
|
||||||
|
|
||||||
const createCacheEntryMock = jest
|
const createCacheEntryMock = jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
||||||
.mockReturnValue(Promise.resolve({ok: false, signedUploadUrl: ''}))
|
.mockReturnValue(Promise.resolve({ ok: false, signedUploadUrl: '' }))
|
||||||
|
|
||||||
const createTarMock = jest.spyOn(tar, 'createTar')
|
const createTarMock = jest.spyOn(tar, 'createTar')
|
||||||
const finalizeCacheEntryMock = jest.spyOn(
|
const finalizeCacheEntryMock = jest.spyOn(
|
||||||
|
@ -138,7 +138,9 @@ test('save cache fails if a signedUploadURL was not passed', async () => {
|
||||||
const key = 'Linux-node-bb828da54c148048dd17899ba9fda624811cfb43'
|
const key = 'Linux-node-bb828da54c148048dd17899ba9fda624811cfb43'
|
||||||
const cachePaths = [path.resolve(paths)]
|
const cachePaths = [path.resolve(paths)]
|
||||||
const signedUploadURL = ''
|
const signedUploadURL = ''
|
||||||
|
const archiveFileSize = 1024
|
||||||
const options: UploadOptions = {
|
const options: UploadOptions = {
|
||||||
|
archiveSizeBytes: archiveFileSize, // These should always match
|
||||||
useAzureSdk: true,
|
useAzureSdk: true,
|
||||||
uploadChunkSize: 64 * 1024 * 1024,
|
uploadChunkSize: 64 * 1024 * 1024,
|
||||||
uploadConcurrency: 8
|
uploadConcurrency: 8
|
||||||
|
@ -147,7 +149,7 @@ test('save cache fails if a signedUploadURL was not passed', async () => {
|
||||||
const createCacheEntryMock = jest
|
const createCacheEntryMock = jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
||||||
.mockReturnValue(
|
.mockReturnValue(
|
||||||
Promise.resolve({ok: true, signedUploadUrl: signedUploadURL})
|
Promise.resolve({ ok: true, signedUploadUrl: signedUploadURL })
|
||||||
)
|
)
|
||||||
|
|
||||||
const createTarMock = jest.spyOn(tar, 'createTar')
|
const createTarMock = jest.spyOn(tar, 'createTar')
|
||||||
|
@ -159,7 +161,6 @@ test('save cache fails if a signedUploadURL was not passed', async () => {
|
||||||
.mockReturnValueOnce(Promise.resolve(compression))
|
.mockReturnValueOnce(Promise.resolve(compression))
|
||||||
|
|
||||||
const cacheVersion = cacheUtils.getCacheVersion([paths], compression)
|
const cacheVersion = cacheUtils.getCacheVersion([paths], compression)
|
||||||
const archiveFileSize = 1024
|
|
||||||
jest
|
jest
|
||||||
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
||||||
.mockReturnValueOnce(archiveFileSize)
|
.mockReturnValueOnce(archiveFileSize)
|
||||||
|
@ -195,7 +196,9 @@ test('finalize save cache failure', async () => {
|
||||||
const cachePaths = [path.resolve(paths)]
|
const cachePaths = [path.resolve(paths)]
|
||||||
const logWarningMock = jest.spyOn(core, 'warning')
|
const logWarningMock = jest.spyOn(core, 'warning')
|
||||||
const signedUploadURL = 'https://blob-storage.local?signed=true'
|
const signedUploadURL = 'https://blob-storage.local?signed=true'
|
||||||
|
const archiveFileSize = 1024
|
||||||
const options: UploadOptions = {
|
const options: UploadOptions = {
|
||||||
|
archiveSizeBytes: archiveFileSize, // These should always match
|
||||||
useAzureSdk: true,
|
useAzureSdk: true,
|
||||||
uploadChunkSize: 64 * 1024 * 1024,
|
uploadChunkSize: 64 * 1024 * 1024,
|
||||||
uploadConcurrency: 8
|
uploadConcurrency: 8
|
||||||
|
@ -204,7 +207,7 @@ test('finalize save cache failure', async () => {
|
||||||
const createCacheEntryMock = jest
|
const createCacheEntryMock = jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
||||||
.mockReturnValue(
|
.mockReturnValue(
|
||||||
Promise.resolve({ok: true, signedUploadUrl: signedUploadURL})
|
Promise.resolve({ ok: true, signedUploadUrl: signedUploadURL })
|
||||||
)
|
)
|
||||||
|
|
||||||
const createTarMock = jest.spyOn(tar, 'createTar')
|
const createTarMock = jest.spyOn(tar, 'createTar')
|
||||||
|
@ -218,14 +221,13 @@ test('finalize save cache failure', async () => {
|
||||||
.mockReturnValueOnce(Promise.resolve(compression))
|
.mockReturnValueOnce(Promise.resolve(compression))
|
||||||
|
|
||||||
const cacheVersion = cacheUtils.getCacheVersion([paths], compression)
|
const cacheVersion = cacheUtils.getCacheVersion([paths], compression)
|
||||||
const archiveFileSize = 1024
|
|
||||||
jest
|
jest
|
||||||
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
||||||
.mockReturnValueOnce(archiveFileSize)
|
.mockReturnValueOnce(archiveFileSize)
|
||||||
|
|
||||||
const finalizeCacheEntryMock = jest
|
const finalizeCacheEntryMock = jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'FinalizeCacheEntryUpload')
|
.spyOn(CacheServiceClientJSON.prototype, 'FinalizeCacheEntryUpload')
|
||||||
.mockReturnValue(Promise.resolve({ok: false, entryId: ''}))
|
.mockReturnValue(Promise.resolve({ ok: false, entryId: '' }))
|
||||||
|
|
||||||
const cacheId = await saveCache([paths], key, options)
|
const cacheId = await saveCache([paths], key, options)
|
||||||
|
|
||||||
|
@ -268,13 +270,14 @@ test('save with valid inputs uploads a cache', async () => {
|
||||||
const cachePaths = [path.resolve(paths)]
|
const cachePaths = [path.resolve(paths)]
|
||||||
const signedUploadURL = 'https://blob-storage.local?signed=true'
|
const signedUploadURL = 'https://blob-storage.local?signed=true'
|
||||||
const createTarMock = jest.spyOn(tar, 'createTar')
|
const createTarMock = jest.spyOn(tar, 'createTar')
|
||||||
|
const archiveFileSize = 1024
|
||||||
const options: UploadOptions = {
|
const options: UploadOptions = {
|
||||||
|
archiveSizeBytes: archiveFileSize, // These should always match
|
||||||
useAzureSdk: true,
|
useAzureSdk: true,
|
||||||
uploadChunkSize: 64 * 1024 * 1024,
|
uploadChunkSize: 64 * 1024 * 1024,
|
||||||
uploadConcurrency: 8
|
uploadConcurrency: 8
|
||||||
}
|
}
|
||||||
|
|
||||||
const archiveFileSize = 1024
|
|
||||||
jest
|
jest
|
||||||
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
.spyOn(cacheUtils, 'getArchiveFileSizeInBytes')
|
||||||
.mockReturnValueOnce(archiveFileSize)
|
.mockReturnValueOnce(archiveFileSize)
|
||||||
|
@ -283,7 +286,7 @@ test('save with valid inputs uploads a cache', async () => {
|
||||||
jest
|
jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
.spyOn(CacheServiceClientJSON.prototype, 'CreateCacheEntry')
|
||||||
.mockReturnValue(
|
.mockReturnValue(
|
||||||
Promise.resolve({ok: true, signedUploadUrl: signedUploadURL})
|
Promise.resolve({ ok: true, signedUploadUrl: signedUploadURL })
|
||||||
)
|
)
|
||||||
|
|
||||||
const saveCacheMock = jest.spyOn(cacheHttpClient, 'saveCache')
|
const saveCacheMock = jest.spyOn(cacheHttpClient, 'saveCache')
|
||||||
|
@ -296,7 +299,7 @@ test('save with valid inputs uploads a cache', async () => {
|
||||||
|
|
||||||
const finalizeCacheEntryMock = jest
|
const finalizeCacheEntryMock = jest
|
||||||
.spyOn(CacheServiceClientJSON.prototype, 'FinalizeCacheEntryUpload')
|
.spyOn(CacheServiceClientJSON.prototype, 'FinalizeCacheEntryUpload')
|
||||||
.mockReturnValue(Promise.resolve({ok: true, entryId: cacheId.toString()}))
|
.mockReturnValue(Promise.resolve({ ok: true, entryId: cacheId.toString() }))
|
||||||
|
|
||||||
const expectedCacheId = await saveCache([paths], key)
|
const expectedCacheId = await saveCache([paths], key)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import * as uploadUtils from '../src/internal/uploadUtils'
|
import * as uploadUtils from '../src/internal/uploadUtils'
|
||||||
import {TransferProgressEvent} from '@azure/ms-rest-js'
|
import { TransferProgressEvent } from '@azure/ms-rest-js'
|
||||||
|
|
||||||
test('upload progress tracked correctly', () => {
|
test('upload progress tracked correctly', () => {
|
||||||
const progress = new uploadUtils.UploadProgress(1000)
|
const progress = new uploadUtils.UploadProgress(1000)
|
||||||
|
@ -11,7 +11,7 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(0)
|
expect(progress.getTransferredBytes()).toBe(0)
|
||||||
expect(progress.isDone()).toBe(false)
|
expect(progress.isDone()).toBe(false)
|
||||||
|
|
||||||
progress.onProgress()({loadedBytes: 0} as TransferProgressEvent)
|
progress.onProgress()({ loadedBytes: 0 } as TransferProgressEvent)
|
||||||
|
|
||||||
expect(progress.contentLength).toBe(1000)
|
expect(progress.contentLength).toBe(1000)
|
||||||
expect(progress.sentBytes).toBe(0)
|
expect(progress.sentBytes).toBe(0)
|
||||||
|
@ -20,7 +20,7 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(0)
|
expect(progress.getTransferredBytes()).toBe(0)
|
||||||
expect(progress.isDone()).toBe(false)
|
expect(progress.isDone()).toBe(false)
|
||||||
|
|
||||||
progress.onProgress()({loadedBytes: 250} as TransferProgressEvent)
|
progress.onProgress()({ loadedBytes: 250 } as TransferProgressEvent)
|
||||||
|
|
||||||
expect(progress.contentLength).toBe(1000)
|
expect(progress.contentLength).toBe(1000)
|
||||||
expect(progress.sentBytes).toBe(250)
|
expect(progress.sentBytes).toBe(250)
|
||||||
|
@ -29,7 +29,7 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(250)
|
expect(progress.getTransferredBytes()).toBe(250)
|
||||||
expect(progress.isDone()).toBe(false)
|
expect(progress.isDone()).toBe(false)
|
||||||
|
|
||||||
progress.onProgress()({loadedBytes: 500} as TransferProgressEvent)
|
progress.onProgress()({ loadedBytes: 500 } as TransferProgressEvent)
|
||||||
|
|
||||||
expect(progress.contentLength).toBe(1000)
|
expect(progress.contentLength).toBe(1000)
|
||||||
expect(progress.sentBytes).toBe(500)
|
expect(progress.sentBytes).toBe(500)
|
||||||
|
@ -38,7 +38,7 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(500)
|
expect(progress.getTransferredBytes()).toBe(500)
|
||||||
expect(progress.isDone()).toBe(false)
|
expect(progress.isDone()).toBe(false)
|
||||||
|
|
||||||
progress.onProgress()({loadedBytes: 750} as TransferProgressEvent)
|
progress.onProgress()({ loadedBytes: 750 } as TransferProgressEvent)
|
||||||
|
|
||||||
expect(progress.contentLength).toBe(1000)
|
expect(progress.contentLength).toBe(1000)
|
||||||
expect(progress.sentBytes).toBe(750)
|
expect(progress.sentBytes).toBe(750)
|
||||||
|
@ -47,7 +47,7 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(750)
|
expect(progress.getTransferredBytes()).toBe(750)
|
||||||
expect(progress.isDone()).toBe(false)
|
expect(progress.isDone()).toBe(false)
|
||||||
|
|
||||||
progress.onProgress()({loadedBytes: 1000} as TransferProgressEvent)
|
progress.onProgress()({ loadedBytes: 1000 } as TransferProgressEvent)
|
||||||
|
|
||||||
expect(progress.contentLength).toBe(1000)
|
expect(progress.contentLength).toBe(1000)
|
||||||
expect(progress.sentBytes).toBe(1000)
|
expect(progress.sentBytes).toBe(1000)
|
||||||
|
@ -56,25 +56,3 @@ test('upload progress tracked correctly', () => {
|
||||||
expect(progress.getTransferredBytes()).toBe(1000)
|
expect(progress.getTransferredBytes()).toBe(1000)
|
||||||
expect(progress.isDone()).toBe(true)
|
expect(progress.isDone()).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
// test('upload to azure blob storage is successful', () => {
|
|
||||||
// const archivePath = 'path/to/archive.tzst'
|
|
||||||
// const signedUploadURL = 'https://storage10.blob.core.windows.net/cache-container/3fe-60?se=2024-12-002T11%3A08%3A58Z&sv=2024-11-04'
|
|
||||||
// const options: UploadOptions = {
|
|
||||||
// useAzureSdk: true,
|
|
||||||
// uploadChunkSize: 64 * 1024 * 1024,
|
|
||||||
// uploadConcurrency: 8
|
|
||||||
// }
|
|
||||||
|
|
||||||
// jest.spyOn(uploadUtils.UploadProgress.prototype, 'onProgress').mockImplementation(() => (progress: TransferProgressEvent) => {
|
|
||||||
// return progress.loadedBytes
|
|
||||||
// })
|
|
||||||
|
|
||||||
// jest.spyOn(uploadUtils.UploadProgress.prototype, 'onProgress').mockImplementation(() => (progress: TransferProgressEvent) => {
|
|
||||||
// return progress.loadedBytes
|
|
||||||
// })
|
|
||||||
|
|
||||||
// const response = uploadUtils.uploadCacheArchiveSDK(signedUploadURL, archivePath, options)
|
|
||||||
|
|
||||||
// expect(response).toBeInstanceOf(Promise)
|
|
||||||
// })
|
|
||||||
|
|
Loading…
Reference in New Issue