diff --git a/index.test.js b/index.test.js index e6076432..7c0cfefd 100644 --- a/index.test.js +++ b/index.test.js @@ -3,7 +3,7 @@ const cp = require('child_process'); const path = require('path'); const fs = require('fs'); -const testHomePath = path.join(__dirname, 'temp'); +const testHomePath = fs.mkdtempSync(".m2"); const settingsPath = path.join(testHomePath, '.m2', 'settings.xml'); const indexPath = path.join(__dirname, 'index.js'); @@ -19,16 +19,14 @@ afterEach(() => { try { fs.unlinkSync(settingsPath); } catch (error) { - console.error(error.message); } }); afterAll(() => { try { - fs.rmdirSync(path.join(testHomePath, ".m2")); + fs.rmdirSync(path.dirname(settingsPath)); fs.rmdirSync(testHomePath); } catch (error) { - console.error(error.message); } }); diff --git a/package.json b/package.json index 71875689..636ab161 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "lint": "eslint index.js settings.js", - "test": "eslint index.js settings.js && jest" + "test": "eslint index.js settings.js && jest --coverage" }, "repository": { "type": "git", diff --git a/settings.test.js b/settings.test.js index 6dde1b5d..a8e89715 100644 --- a/settings.test.js +++ b/settings.test.js @@ -1,11 +1,16 @@ const DOMParser = require('xmldom').DOMParser; const XMLSerializer = require('xmldom').XMLSerializer; +const fs = require('fs'); +const path = require('path'); const settings = require('./settings'); var xmlTestProfile = undefined; +const testHomePath = fs.mkdtempSync(".m2"); +const settingsPath = path.join(testHomePath, '.m2', 'settings.xml'); + beforeEach(() => { xmlTestProfile = new DOMParser().parseFromString(` @@ -27,6 +32,28 @@ beforeEach(() => { }); +afterEach(() => { + + for (key in process.env) { + if (key.match(/^INPUT_/)) { + delete process.env[key]; + } + } + + try { + fs.unlinkSync(settingsPath); + } catch (error) { + } +}); + +afterAll(() => { + try { + fs.rmdirSync(path.dirname(settingsPath)); + fs.rmdirSync(testHomePath); + } catch (error) { + } +}); + test('template should be read', () => { const template = settings.getSettingsTemplate(); @@ -34,6 +61,19 @@ test('template should be read', () => { expect(template).toBeDefined(); }); +test('xml should be write', () => { + + if (!fs.existsSync(testHomePath)) { + fs.mkdirSync(testHomePath); + } + + settings.writeSettings(settingsPath, xmlTestProfile); + + const settingsStatus = fs.lstatSync(settingsPath); + expect(settingsStatus.isFile()).toBeTruthy(); + expect(settingsStatus.size).toBeGreaterThan(0); +}); + test('fillServers do nothing if no params', () => { const xml = new DOMParser().parseFromString(""); @@ -43,7 +83,6 @@ test('fillServers do nothing if no params', () => { const xmlStr = new XMLSerializer().serializeToString(xml); expect(xmlStr).toBe(""); - }); test('fillServers one server', () => { @@ -60,7 +99,6 @@ test('fillServers one server', () => { expect(xmlStr).toBe("" + "id1username1password1" + ""); - }); test('fillServers two servers', () => { @@ -131,3 +169,27 @@ test('fillProperties', () => { `); }) + +test('fillProperties do nothing if no params', () => { + + settings.fillProperties(xmlTestProfile); + + const xmlStr = new XMLSerializer().serializeToString(xmlTestProfile); + expect(xmlStr).toBe(` + + + _properties_ + + false + + + + + _sonatype-snapshots_ + + false + + + + `); +})