diff --git a/spec/__mocks__/electron.ts b/spec/__mocks__/electron.ts index b3ee5795..0e039550 100644 --- a/spec/__mocks__/electron.ts +++ b/spec/__mocks__/electron.ts @@ -126,6 +126,12 @@ const getCurrentWindow = jest.fn(() => { }; }); +export const session = { + defaultSession: { + clearCache: jest.fn(), + }, +}; + export const remote = { app, getCurrentWindow, diff --git a/spec/appCacheHandler.spec.ts b/spec/appCacheHandler.spec.ts new file mode 100644 index 00000000..3ab0cb37 --- /dev/null +++ b/spec/appCacheHandler.spec.ts @@ -0,0 +1,36 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import { cleanUpAppCache, createAppCacheFile } from '../src/app/app-cache-handler'; +import { app, session } from './__mocks__/electron'; + +jest.mock('fs', () => ({ + writeFileSync: jest.fn(), + existsSync: jest.fn(() => true), + unlinkSync: jest.fn(), +})); + +describe('app cache handler', () => { + const cachePathExpected = path.join(app.getPath('userData'), 'CacheCheck'); + + it('should call `cleanUpAppCache` correctly', () => { + const spyFn = 'unlinkSync'; + const spy = jest.spyOn(fs, spyFn); + cleanUpAppCache(); + expect(spy).toBeCalledWith(cachePathExpected); + }); + + it('should call `clearCache` when `session.defaultSession` is not null', () => { + jest.spyOn(fs, 'existsSync').mockImplementation(() => false); + const spyFn = 'clearCache'; + const spy = jest.spyOn(session.defaultSession, spyFn); + cleanUpAppCache(); + expect(spy).lastCalledWith(expect.any(Function)); + }); + + it('should call `createAppCacheFile` correctly', () => { + const spyFn = 'writeFileSync'; + const spy = jest.spyOn(fs, spyFn); + createAppCacheFile(); + expect(spy).lastCalledWith(cachePathExpected, ''); + }); +});