diff --git a/package.json b/package.json index 59a978a..c0915c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "netlify-plugin-ttl-cache", - "version": "1.0.1", + "version": "1.0.2", "description": "A Netlify plugin for persisting immutable build assets across releases.", "keywords": [ "netlify", diff --git a/src/index.js b/src/index.js index 9b4e043..1b8623d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -const { stat, unlink } = require("fs").promises; +const { stat, unlink, rmdir } = require("fs").promises; const { getDaysApart, getDirFilenames, addTrailingSlash } = require("./utils"); const TMP_CACHE_DIR = ".netlify-plugin-ttl-cache"; @@ -38,6 +38,7 @@ const onPostBuild = async ({ utils, inputs }) => { addTrailingSlash(TMP_CACHE_DIR), addTrailingSlash(inputs.path), ]); + await rmdir(TMP_CACHE_DIR, { recursive: true }); } // Save new cache diff --git a/src/index.test.js b/src/index.test.js index 632c917..cc8bf6e 100644 --- a/src/index.test.js +++ b/src/index.test.js @@ -2,13 +2,14 @@ jest.mock("fs", () => ({ promises: { stat: jest.fn(), unlink: jest.fn(), + rmdir: jest.fn(), }, })); jest.mock("./utils", () => ({ ...jest.requireActual("./utils"), getDirFilenames: jest.fn(), })); -const { stat, unlink } = require("fs").promises; +const { stat, unlink, rmdir } = require("fs").promises; const { onPreBuild, onPostBuild } = require("./index"); const { getDirFilenames } = require("./utils"); @@ -144,5 +145,18 @@ describe("on onPostBuild", () => { expect(utils.cache.save).toBeCalledTimes(1); expect(utils.cache.save).toBeCalledWith(inputs.path); }); + + it("removes old cache directory", async () => { + await onPostBuild({ inputs, utils }); + expect(rmdir).toBeCalledTimes(1); + expect(rmdir.mock.calls[0]).toMatchInlineSnapshot(` +Array [ + ".netlify-plugin-ttl-cache", + Object { + "recursive": true, + }, +] +`); + }); }); });