Skip to content

Commit 65a212e

Browse files
committed
Use encoder to select chars encoder for testing
1 parent a56b91d commit 65a212e

File tree

2 files changed

+26
-33
lines changed

2 files changed

+26
-33
lines changed

src/lib/encoder.spec.ts

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,28 @@
11
import test, { ExecutionContext } from 'ava'
22

33
import { Chars } from './chars'
4-
import alphaEncoder from './encoder/alpha'
5-
import alphaCaseEncoder from './encoder/alphaCase'
6-
import alphaNumEncoder from './encoder/alphaNum'
7-
import alphaNumCaseEncoder from './encoder/alphaNumCase'
8-
import base32Encoder from './encoder/base32'
9-
import base32HexCaseEncoder from './encoder/base32HexCase'
10-
import decimalEncoder from './encoder/decimal'
11-
import hexCaseEncoder from './encoder/hexCase'
12-
import safe32Encoder from './encoder/safe32'
13-
import safe64Encoder from './encoder/safe64'
14-
import safeAsciiEncoder from './encoder/safeAscii'
15-
import symbolEncoder from './encoder/symbol'
4+
import encoder from './encoder'
165

17-
type PuidEncoder = (n: number) => number
18-
19-
const encoder = (t: ExecutionContext, encoder: PuidEncoder, chars: string) => {
20-
const codes = [...Array(chars.length).keys()].map(code => encoder(code))
6+
const chars_encoder = (t: ExecutionContext, chars: string) => {
7+
const chars_encoder = encoder(chars)
8+
const codes = [...Array(chars.length).keys()].map(code => chars_encoder(code))
219
const encoded = String.fromCharCode(...codes)
2210
t.is(encoded, chars)
2311
}
2412

25-
test('alpha() encoder chars', (t) => encoder(t, alphaEncoder(), Chars.Alpha))
26-
test('alphaCase() encoder chars', (t) => encoder(t, alphaCaseEncoder(), Chars.AlphaLower))
27-
test('alphaCase(true) encoder chars', (t) => encoder(t, alphaCaseEncoder(true), Chars.AlphaUpper))
28-
test('alphaNumEncoder() encoder chars', (t) => encoder(t, alphaNumEncoder(), Chars.AlphaNum))
29-
test('alphaNumCaseEncoder() encoder chars', (t) => encoder(t, alphaNumCaseEncoder(), Chars.AlphaNumLower))
30-
test('alphaNumCaseEncoder(true) encoder chars', (t) => encoder(t, alphaNumCaseEncoder(true), Chars.AlphaNumUpper))
31-
test('base32Encoder() encoder chars', (t) => encoder(t, base32Encoder(), Chars.Base32))
32-
test('base32HexCaseEncoder() encoder chars', (t) => encoder(t, base32HexCaseEncoder(), Chars.Base32Hex))
33-
test('base32HexCaseEncoder(true) encoder chars', (t) => encoder(t, base32HexCaseEncoder(true), Chars.Base32HexUpper))
34-
test('decimalEncoder() encoder chars', (t) => encoder(t, decimalEncoder(), Chars.Decimal))
35-
test('hexCaseEncoder() encoder chars', (t) => encoder(t, hexCaseEncoder(), Chars.Hex))
36-
test('hexCaseEncoder(true) encoder chars', (t) => encoder(t, hexCaseEncoder(true), Chars.HexUpper))
37-
test('safeAsciiEncoder() encoder chars', (t) => encoder(t, safeAsciiEncoder(), Chars.SafeAscii))
38-
test('safe32Encoder() encoder chars', (t) => encoder(t, safe32Encoder(), Chars.Safe32))
39-
test('safe64Encoder encoder chars', (t) => encoder(t, safe64Encoder(), Chars.Safe64))
40-
test('symbolEncoder() encoder chars', (t) => encoder(t, symbolEncoder(), Chars.Symbol))
13+
test('alpha() encoder chars', (t) => chars_encoder(t, Chars.Alpha))
14+
test('alphaCase() encoder chars', (t) => chars_encoder(t, Chars.AlphaLower))
15+
test('alphaCase(true) encoder chars', (t) => chars_encoder(t, Chars.AlphaUpper))
16+
test('alphaNumEncoder() encoder chars', (t) => chars_encoder(t, Chars.AlphaNum))
17+
test('alphaNumCaseEncoder() encoder chars', (t) => chars_encoder(t, Chars.AlphaNumLower))
18+
test('alphaNumCaseEncoder(true) encoder chars', (t) => chars_encoder(t, Chars.AlphaNumUpper))
19+
test('base32Encoder() encoder chars', (t) => chars_encoder(t, Chars.Base32))
20+
test('base32HexCaseEncoder() encoder chars', (t) => chars_encoder(t, Chars.Base32Hex))
21+
test('base32HexCaseEncoder(true) encoder chars', (t) => chars_encoder(t, Chars.Base32HexUpper))
22+
test('decimalEncoder() encoder chars', (t) => chars_encoder(t, Chars.Decimal))
23+
test('hexCaseEncoder() encoder chars', (t) => chars_encoder(t, Chars.Hex))
24+
test('hexCaseEncoder(true) encoder chars', (t) => chars_encoder(t, Chars.HexUpper))
25+
test('safeAsciiEncoder() encoder chars', (t) => chars_encoder(t, Chars.SafeAscii))
26+
test('safe32Encoder() encoder chars', (t) => chars_encoder(t, Chars.Safe32))
27+
test('safe64Encoder encoder chars', (t) => chars_encoder(t, Chars.Safe64))
28+
test('symbolEncoder() encoder chars', (t) => chars_encoder(t, Chars.Symbol))

src/lib/encoder.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@ import alphaCaseEncoder from './encoder/alphaCase'
2626
import alphaNumEncoder from './encoder/alphaNum'
2727
import base32Encoder from './encoder/base32'
2828
import base32HexCaseEncoder from './encoder/base32HexCase'
29+
import customEncoder from './encoder/custom'
30+
import decimalEncoder from './encoder/decimal'
2931
import hexCaseEncoder from './encoder/hexCase'
3032
import safe32Encoder from './encoder/safe32'
3133
import safe64Encoder from './encoder/safe64'
3234
import safeAsciiEncoder from './encoder/safeAscii'
35+
import symbolEncoder from './encoder/symbol'
3336

3437
export default (chars: string): PuidEncoder => {
3538
if (chars === Chars.Alpha) return alphaEncoder()
@@ -39,11 +42,13 @@ export default (chars: string): PuidEncoder => {
3942
if (chars === Chars.Base32) return base32Encoder()
4043
if (chars === Chars.Base32Hex) return base32HexCaseEncoder()
4144
if (chars === Chars.Base32HexUpper) return base32HexCaseEncoder(true)
45+
if (chars === Chars.Decimal) return decimalEncoder()
4246
if (chars === Chars.Hex) return hexCaseEncoder()
4347
if (chars === Chars.HexUpper) return hexCaseEncoder(true)
4448
if (chars === Chars.Safe32) return safe32Encoder()
4549
if (chars === Chars.Safe64) return safe64Encoder()
4650
if (chars === Chars.SafeAscii) return safeAsciiEncoder()
51+
if (chars === Chars.Symbol) return symbolEncoder()
4752

48-
return customCharsEncoder(chars)
53+
return customEncoder(chars)
4954
}

0 commit comments

Comments
 (0)