3f0e1b2563
* first pass on profiles * quick test * wip * wip * test post thread * record embeds * get author feed profiles * wip timeline * fix get timeline * switch from counter to tid * tidy into a service * quick tid test * pr feedback * clock -> rev * update image formatting * disable migration & build branch * add recent posts to getAuthorFeed & handle post thread not found errors * refactor for lag header * tidy * rm collections check * tidy test * pr feedback * fix small bug * build branch * get migrations into system * enable migrations
143 lines
3.3 KiB
TypeScript
143 lines
3.3 KiB
TypeScript
import TID from '../src/tid'
|
|
|
|
describe('TIDs', () => {
|
|
it('creates a new TID', () => {
|
|
const tid = TID.next()
|
|
const str = tid.toString()
|
|
expect(typeof str).toEqual('string')
|
|
expect(str.length).toEqual(13)
|
|
})
|
|
|
|
it('parses a TID', () => {
|
|
const tid = TID.next()
|
|
const str = tid.toString()
|
|
const parsed = TID.fromStr(str)
|
|
expect(parsed.timestamp()).toEqual(tid.timestamp())
|
|
expect(parsed.clockid()).toEqual(tid.clockid())
|
|
})
|
|
|
|
it('throws if invalid tid passed', () => {
|
|
expect(() => new TID('')).toThrow('Poorly formatted TID: 0 length')
|
|
})
|
|
|
|
describe('nextStr', () => {
|
|
it('returns next tid as a string', () => {
|
|
const str = TID.nextStr()
|
|
expect(typeof str).toEqual('string')
|
|
expect(str.length).toEqual(13)
|
|
})
|
|
|
|
it('returns a next tid larger than a provided prev', () => {
|
|
const prev = TID.fromTime((Date.now() + 5000) * 1000, 0).toString()
|
|
const str = TID.nextStr(prev)
|
|
expect(str > prev).toBe(true)
|
|
})
|
|
})
|
|
|
|
describe('newestFirst', () => {
|
|
it('sorts tids newest first', () => {
|
|
const oldest = TID.next()
|
|
const newest = TID.next()
|
|
|
|
const tids = [oldest, newest]
|
|
|
|
tids.sort(TID.newestFirst)
|
|
|
|
expect(tids).toEqual([newest, oldest])
|
|
})
|
|
})
|
|
|
|
describe('oldestFirst', () => {
|
|
it('sorts tids oldest first', () => {
|
|
const oldest = TID.next()
|
|
const newest = TID.next()
|
|
|
|
const tids = [newest, oldest]
|
|
|
|
tids.sort(TID.oldestFirst)
|
|
|
|
expect(tids).toEqual([oldest, newest])
|
|
})
|
|
})
|
|
|
|
describe('is', () => {
|
|
it('true for valid tids', () => {
|
|
const tid = TID.next()
|
|
const asStr = tid.toString()
|
|
|
|
expect(TID.is(asStr)).toBe(true)
|
|
})
|
|
|
|
it('false for invalid tids', () => {
|
|
expect(TID.is('')).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe('equals', () => {
|
|
it('true when same tid', () => {
|
|
const tid = TID.next()
|
|
expect(tid.equals(tid)).toBe(true)
|
|
})
|
|
|
|
it('true when different instance, same tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = new TID(tid0.toString())
|
|
|
|
expect(tid0.equals(tid1)).toBe(true)
|
|
})
|
|
|
|
it('false when different tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = TID.next()
|
|
|
|
expect(tid0.equals(tid1)).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe('newerThan', () => {
|
|
it('true for newer tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = TID.next()
|
|
|
|
expect(tid1.newerThan(tid0)).toBe(true)
|
|
})
|
|
|
|
it('false for older tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = TID.next()
|
|
|
|
expect(tid0.newerThan(tid1)).toBe(false)
|
|
})
|
|
|
|
it('false for identical tids', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = new TID(tid0.toString())
|
|
|
|
expect(tid0.newerThan(tid1)).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe('olderThan', () => {
|
|
it('true for older tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = TID.next()
|
|
|
|
expect(tid0.olderThan(tid1)).toBe(true)
|
|
})
|
|
|
|
it('false for newer tid', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = TID.next()
|
|
|
|
expect(tid1.olderThan(tid0)).toBe(false)
|
|
})
|
|
|
|
it('false for identical tids', () => {
|
|
const tid0 = TID.next()
|
|
const tid1 = new TID(tid0.toString())
|
|
|
|
expect(tid0.olderThan(tid1)).toBe(false)
|
|
})
|
|
})
|
|
})
|