UNPKG

cluster-id

Version:

Database cluster friendly object id with great query isolation.

46 lines (41 loc) 1.66 kB
/* global test, expect */ var createCounter = require('./counter') var ref = require('./base64'); var BASE = ref.BASE; var encode = ref.encode; test('return unchanged single symbol counter', function () { var ref = createCounter(1); var encodeCounter = ref.encodeCounter; expect(encode(10, 1)).toBe('9') expect(encodeCounter(10)).toBe('9') }) test('swap symbols in 2 symbols counter', function () { var ref = createCounter(2); var encodeCounter = ref.encodeCounter; expect(encode(BASE - 1, 2)).toBe('-z') expect(encodeCounter(BASE - 1)).toBe('z-') expect(encode(Math.pow( BASE, 2 ) - 2, 2)).toBe('zy') expect(encodeCounter(Math.pow( BASE, 2 ) - 2)).toBe('yz') }) test('swap symbols in 3 symbols counter', function () { var ref = createCounter(3); var encodeCounter = ref.encodeCounter; expect(encode(BASE - 1, 3)).toBe('--z') expect(encodeCounter(BASE - 1, 3)).toBe('z--') expect(encode(Math.pow( BASE, 2 ) - 2, 3)).toBe('-zy') expect(encodeCounter(Math.pow( BASE, 2 ) - 2)).toBe('yz-') expect(encode(Math.pow( BASE, 2 ) + 3, 3)).toBe('0-2') expect(encodeCounter(Math.pow( BASE, 2 ) + 3)).toBe('2-0') }) test('swap symbols in 4 symbols counter', function () { var ref = createCounter(4); var encodeCounter = ref.encodeCounter; expect(encode(BASE - 1, 4)).toBe('---z') expect(encodeCounter(BASE - 1)).toBe('z---') expect(encode(BASE + 3, 4)).toBe('--02') expect(encodeCounter(BASE + 3)).toBe('20--') expect(encode(Math.pow( BASE, 2 ) + 3, 4)).toBe('-0-2') expect(encodeCounter(Math.pow( BASE, 2 ) + 3)).toBe('2-0-') expect(encode(556789, 4)).toBe('16vp') expect(encodeCounter(556789)).toBe('pv61') })