diff --git a/package.json b/package.json index 305963443a49..3a9a6ef138d0 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ "build": "cross-env NODE_ENV=production webpack", "lint": "xo", "test": "npm run lint", + "test:unit": "ava test/unit", + "test:unit:watch": "npm run test:unit -- --watch", "prepush": "npm test", "postinstall": "install-app-deps && npm run rebuild-node-pty", "rebuild-node-pty": "electron-rebuild -f -w app/node_modules/node-pty -m app", diff --git a/test/testUtils/is-hex-color.js b/test/testUtils/is-hex-color.js new file mode 100644 index 000000000000..310f7d0900e0 --- /dev/null +++ b/test/testUtils/is-hex-color.js @@ -0,0 +1,5 @@ +function isHexColor(color) { + return /(^#[0-9A-F]{6,8}$)|(^#[0-9A-F]{3}$)/i.test(color); // https://regex101.com/ +} + +module.exports.isHexColor = isHexColor; diff --git a/test/unit/to-electron-background-color.test.js b/test/unit/to-electron-background-color.test.js new file mode 100644 index 000000000000..a7fe69b98826 --- /dev/null +++ b/test/unit/to-electron-background-color.test.js @@ -0,0 +1,52 @@ +import test from 'ava'; +import toElectronBackgroundColor from '../../app/utils/to-electron-background-color'; +import {isHexColor} from '../testUtils/is-hex-color'; + +test('toElectronBackgroundColor', t => { + t.false(false); +}); + +test(`returns a color that's in hex`, t => { + const hexColor = '#BADA55'; + const rgbColor = 'rgb(0,0,0)'; + const rgbaColor = 'rgb(0,0,0, 55)'; + const hslColor = 'hsl(15, 100%, 50%)'; + const hslaColor = 'hsl(15, 100%, 50%, 1)'; + const colorKeyword = 'pink'; + + t.true( + isHexColor( + toElectronBackgroundColor(hexColor) + ) + ); + + t.true( + isHexColor( + toElectronBackgroundColor(rgbColor) + ) + ); + + t.true( + isHexColor( + toElectronBackgroundColor(rgbaColor) + ) + ); + + t.true( + isHexColor( + toElectronBackgroundColor(hslColor) + ) + ); + + t.true( + isHexColor( + toElectronBackgroundColor(hslaColor) + ) + ); + + t.true( + isHexColor( + toElectronBackgroundColor(colorKeyword) + ) + ); +});