From 6fb8550919cb02e6fcd380da7143caf95a507cf6 Mon Sep 17 00:00:00 2001 From: dogboydog Date: Wed, 8 Jul 2020 18:28:00 -0400 Subject: [PATCH] increase code coverage with versioning.test.js --- src/model/versioning.test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/model/versioning.test.js b/src/model/versioning.test.js index 631f563e..9c5cfc02 100644 --- a/src/model/versioning.test.js +++ b/src/model/versioning.test.js @@ -100,6 +100,35 @@ describe('Versioning', () => { }); }); + describe('logDiffIfDirty', () => { + it('does not throw', () => { + expect(() => Versioning.logDiffIfDirty).not.toThrow(); + }); + + it('returns false by default', () => { + expect(Versioning.logDiffIfDirty).toStrictEqual(false); + }); + + it('does not call git diff if logDiffIfDirty is false', async () => { + jest.spyOn(core, 'getInput').mockReturnValue('false'); + const gitSpy = jest.spyOn(Versioning, 'git').mockReturnValue(''); + await Versioning.isDirty(); + expect(gitSpy).toHaveBeenCalledTimes(1); + expect(gitSpy).toBeCalledWith(['status', '--porcelain']); + }); + + it('calls git diff if logDiffIfDirty is true', async () => { + jest.spyOn(core, 'getInput').mockReturnValue('true'); + const gitSpy = jest + .spyOn(Versioning, 'git') + .mockReturnValue('There is a diff actually! \n M My_Dirty_File.txt'); + await Versioning.isDirty(); + expect(gitSpy).toHaveBeenCalledTimes(2); + expect(Versioning.git.mock.calls[0][0].indexOf('status')).toBeGreaterThan(-1); + expect(Versioning.git.mock.calls[1][0].indexOf('diff')).toBeGreaterThan(-1); + }); + }); + describe('descriptionRegex', () => { it('is a valid regex', () => { expect(Versioning.descriptionRegex).toBeInstanceOf(RegExp);