Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
add tests for 8 and 4 digit alpha channel hexes
  • Loading branch information
nathanallen committed Jun 2, 2017
commit 71b94b10e4895a8f141a6761ab1cbcdac54f3b58
127 changes: 127 additions & 0 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,41 @@ var threeDigits = {
]
}

var fourDigits = {
pass: [
'#afe0',
'#AF31',
'#3cba',
'#3CBA',
'#b2ff',
'#5B2F'
],
fail: [
'afe0',
'AF31',
'#3cbg',
'#3CBy',
'#b2fz'
]
}

var eightDigits = {
pass: [
'#afebe300',
'#AFEBE3AA',
'#3cb371ff',
'#3CB371CC',
'#556b2f55'
],
fail: [
'afebe300',
'AFEBE3AA',
'#3cb371fg',
'#3CB371xy',
'#556b2fz9'
]
}

test('hex-color-regex:', function () {
test('in no strict mode', function () {
test('six digit hex', function () {
Expand Down Expand Up @@ -127,6 +162,44 @@ test('hex-color-regex:', function () {
})
})
})
test('eight digit alpha channel hex', function () {
test('should be `true`', function () {
eightDigits.pass.forEach(function (hex) {
test('when `' + hex + '` value', function () {
test.equal(hexColorRegex().test(hex), true)
})
})
test('when `foo #ae3f4c bar` value', function () {
test.equal(hexColorRegex().test('foo #ae3f4c00 bar'), true)
})
})
test('should be `false`', function () {
eightDigits.fail.forEach(function (hex) {
test('when `' + hex + '` value', function () {
test.equal(hexColorRegex().test(hex), false)
})
})
})
})
test('four digit alpha channel hex', function () {
test('should be `true`', function () {
fourDigits.pass.forEach(function (hex) {
test('when `' + hex + '` value', function () {
test.equal(hexColorRegex().test(hex), true)
})
})
test('when `foo #ae3f4c bar` value', function () {
test.equal(hexColorRegex().test('foo #ae3f bar'), true)
})
})
test('should be `false`', function () {
fourDigits.fail.forEach(function (hex) {
test('when `' + hex + '` value', function () {
test.equal(hexColorRegex().test(hex), false)
})
})
})
})
test('using regex().exec(hex)', function () {
sixDigits.pass.forEach(function (hex) {
var hexed = hex.replace('}', '')
Expand Down Expand Up @@ -156,6 +229,36 @@ test('hex-color-regex:', function () {
var actual = hexColorRegex().exec('foo #e7f bar')[0]
var expected = '#e7f'

test.equal(actual, expected)
})
eightDigits.pass.forEach(function (hex) {
var hexed = hex.replace('}', '')
test('should match `' + hexed + '` when `' + hex + '` hex', function () {
var actual = hexColorRegex().exec(hex)[0]
var expected = hexed

test.equal(actual, expected)
})
})
test('should match `#ae3f4c00` when `foo #ae3f4c00 bar` string', function () {
var actual = hexColorRegex().exec('foo #ae3f4c00 bar')[0]
var expected = '#ae3f4c00'

test.equal(actual, expected)
})
fourDigits.pass.forEach(function (hex) {
var hexed = hex.replace('}', '')
test('should match `' + hexed + '` when `' + hex + '` hex', function () {
var actual = hexColorRegex().exec(hex)[0]
var expected = hexed

test.equal(actual, expected)
})
})
test('should match `#e7f0` when `foo #e7f0 bar` string', function () {
var actual = hexColorRegex().exec('foo #e7f0 bar')[0]
var expected = '#e7f0'

test.equal(actual, expected)
})
})
Expand All @@ -173,6 +276,18 @@ test('hex-color-regex:', function () {
test('string contain three digit hex `foo #e7f bar` return false', function () {
test.equal(hexColorRegex({strict: true}).test('foo #e7f bar'), false)
})
test('eight digit alpha channel hex `#123fff00}` should return false', function () {
test.equal(hexColorRegex({strict: true}).test('#123fff00}'), false)
})
test('string contain eight digit alpha channel hex `foo #ae3f4cff bar` return false', function () {
test.equal(hexColorRegex({strict: true}).test('foo #ae3f4cff bar'), false)
})
test('four digit alpha channel hex `#f3f0}` should return false', function () {
test.equal(hexColorRegex({strict: true}).test('#f3f0}'), false)
})
test('string contain four digit alpha channel hex `foo #e7ff bar` return false', function () {
test.equal(hexColorRegex({strict: true}).test('foo #e7ff bar'), false)
})
test('should not match when `foo #ae3f4c bar` string', function () {
var actual = hexColorRegex({strict: true}).exec('foo #ae3f4c bar')
var expected = null
Expand All @@ -183,6 +298,18 @@ test('hex-color-regex:', function () {
var actual = hexColorRegex({strict: true}).exec('foo #e7f bar')
var expected = null

test.equal(actual, expected)
})
test('should not match when `foo #ae3f4cff bar` string', function () {
var actual = hexColorRegex({strict: true}).exec('foo #ae3f4cff bar')
var expected = null

test.equal(actual, expected)
})
test('should not match when `foo #e7ff bar` string', function () {
var actual = hexColorRegex({strict: true}).exec('foo #e7ff bar')
var expected = null

test.equal(actual, expected)
})
})
Expand Down