diff --git a/__tests__/upload.test.ts b/__tests__/upload.test.ts index ffdc9a5..de81a1c 100644 --- a/__tests__/upload.test.ts +++ b/__tests__/upload.test.ts @@ -274,4 +274,57 @@ describe('upload', () => { `Skipping deletion of '${fixtures.artifactName}', it does not exist` ) }) + + test('passes skipArchive when archive is false', async () => { + mockInputs({ + [Inputs.Archive]: false + }) + + mockFindFilesToUpload.mockResolvedValue({ + filesToUpload: [fixtures.filesToUpload[0]], + rootDirectory: fixtures.rootDirectory + }) + + await run() + + expect(artifact.default.uploadArtifact).toHaveBeenCalledWith( + fixtures.artifactName, + [fixtures.filesToUpload[0]], + fixtures.rootDirectory, + {compressionLevel: 6, skipArchive: true} + ) + }) + + test('does not pass skipArchive when archive is true', async () => { + mockInputs({ + [Inputs.Archive]: true + }) + + mockFindFilesToUpload.mockResolvedValue({ + filesToUpload: [fixtures.filesToUpload[0]], + rootDirectory: fixtures.rootDirectory + }) + + await run() + + expect(artifact.default.uploadArtifact).toHaveBeenCalledWith( + fixtures.artifactName, + [fixtures.filesToUpload[0]], + fixtures.rootDirectory, + {compressionLevel: 6} + ) + }) + + test('fails when archive is false and multiple files are provided', async () => { + mockInputs({ + [Inputs.Archive]: false + }) + + await run() + + expect(core.setFailed).toHaveBeenCalledWith( + `When 'archive' is set to false, only a single file can be uploaded. Found ${fixtures.filesToUpload.length} files to upload.` + ) + expect(artifact.default.uploadArtifact).not.toHaveBeenCalled() + }) })