Decouple tests
This commit is contained in:
parent
3f8faa4daa
commit
1c16d44234
1 changed files with 72 additions and 59 deletions
|
|
@ -14,31 +14,19 @@ if (!fs.existsSync('./test-radata')) {
|
||||||
fs.mkdirSync('./test-radata')
|
fs.mkdirSync('./test-radata')
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @type {ReturnType<typeof Gun>} */
|
const createInstance = () =>
|
||||||
// eslint-disable-next-line init-declarations
|
Gun({
|
||||||
let instance
|
|
||||||
|
|
||||||
describe('gun smith', () => {
|
|
||||||
// eslint-disable-next-line jest/no-hooks
|
|
||||||
beforeEach(() => {
|
|
||||||
instance = Gun({
|
|
||||||
axe: false,
|
axe: false,
|
||||||
multicast: false,
|
multicast: false,
|
||||||
file: './test-radata/' + words({ exactly: 2 }).join('-')
|
file: './test-radata/' + words({ exactly: 2 }).join('-')
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-hooks
|
|
||||||
afterAll(() => {
|
|
||||||
if (instance) {
|
|
||||||
instance.reforge()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
describe('gun smith', () => {
|
||||||
it('puts a true and reads it with once()', done => {
|
it('puts a true and reads it with once()', done => {
|
||||||
expect.hasAssertions()
|
expect.hasAssertions()
|
||||||
const a = words()
|
const a = words()
|
||||||
const b = words()
|
const b = words()
|
||||||
|
const instance = createInstance()
|
||||||
instance
|
instance
|
||||||
.get(a)
|
.get(a)
|
||||||
.get(b)
|
.get(b)
|
||||||
|
|
@ -47,16 +35,21 @@ describe('gun smith', () => {
|
||||||
instance
|
instance
|
||||||
.get(a)
|
.get(a)
|
||||||
.get(b)
|
.get(b)
|
||||||
.once(val => {
|
.once(
|
||||||
|
val => {
|
||||||
expect(val).toStrictEqual(true)
|
expect(val).toStrictEqual(true)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
},
|
||||||
|
{ wait: 5000 }
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('puts a false and reads it with once()', done => {
|
it('puts a false and reads it with once()', done => {
|
||||||
expect.hasAssertions()
|
expect.hasAssertions()
|
||||||
const a = words()
|
const a = words()
|
||||||
const b = words()
|
const b = words()
|
||||||
|
const instance = createInstance()
|
||||||
instance
|
instance
|
||||||
.get(a)
|
.get(a)
|
||||||
.get(b)
|
.get(b)
|
||||||
|
|
@ -67,6 +60,7 @@ describe('gun smith', () => {
|
||||||
.get(b)
|
.get(b)
|
||||||
.once(val => {
|
.once(val => {
|
||||||
expect(val).toBe(false)
|
expect(val).toBe(false)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -75,6 +69,7 @@ describe('gun smith', () => {
|
||||||
expect.hasAssertions()
|
expect.hasAssertions()
|
||||||
const a = words()
|
const a = words()
|
||||||
const b = words()
|
const b = words()
|
||||||
|
const instance = createInstance()
|
||||||
instance
|
instance
|
||||||
.get(a)
|
.get(a)
|
||||||
.get(b)
|
.get(b)
|
||||||
|
|
@ -85,6 +80,7 @@ describe('gun smith', () => {
|
||||||
.get(b)
|
.get(b)
|
||||||
.once(val => {
|
.once(val => {
|
||||||
expect(val).toBe(5)
|
expect(val).toBe(5)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -94,6 +90,7 @@ describe('gun smith', () => {
|
||||||
const a = words()
|
const a = words()
|
||||||
const b = words()
|
const b = words()
|
||||||
const sentence = words({ exactly: 50 }).join(' ')
|
const sentence = words({ exactly: 50 }).join(' ')
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
instance
|
instance
|
||||||
.get(a)
|
.get(a)
|
||||||
|
|
@ -105,6 +102,7 @@ describe('gun smith', () => {
|
||||||
.get(b)
|
.get(b)
|
||||||
.once(val => {
|
.once(val => {
|
||||||
expect(val).toBe(sentence)
|
expect(val).toBe(sentence)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -118,6 +116,7 @@ describe('gun smith', () => {
|
||||||
b: 1
|
b: 1
|
||||||
}
|
}
|
||||||
const c = { ...a, ...b }
|
const c = { ...a, ...b }
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const node = instance.get('foo').get('bar')
|
const node = instance.get('foo').get('bar')
|
||||||
|
|
||||||
|
|
@ -130,18 +129,21 @@ describe('gun smith', () => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
expect(removeBuiltInGunProps(data)).toEqual(c)
|
expect(removeBuiltInGunProps(data)).toEqual(c)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('writes primitive items into sets', done => {
|
it('writes primitive items into sets', done => {
|
||||||
expect.hasAssertions()
|
expect.hasAssertions()
|
||||||
|
const instance = createInstance()
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
const item = node.set('hello')
|
const item = node.set('hello')
|
||||||
|
|
||||||
node.once(data => {
|
node.once(data => {
|
||||||
if (typeof data !== 'object' || data === null) {
|
if (typeof data !== 'object' || data === null) {
|
||||||
|
instance.kill()
|
||||||
done(new Error('Data not an object'))
|
done(new Error('Data not an object'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -149,12 +151,14 @@ describe('gun smith', () => {
|
||||||
expect(removeBuiltInGunProps(data)).toEqual({
|
expect(removeBuiltInGunProps(data)).toEqual({
|
||||||
[item._.get]: 'hello'
|
[item._.get]: 'hello'
|
||||||
})
|
})
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('writes object items into sets', done => {
|
it('writes object items into sets', done => {
|
||||||
expect.hasAssertions()
|
expect.hasAssertions()
|
||||||
|
const instance = createInstance()
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
|
|
@ -171,12 +175,14 @@ describe('gun smith', () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
expect(removeBuiltInGunProps(data)).toEqual(obj)
|
expect(removeBuiltInGunProps(data)).toEqual(obj)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('maps over a primitive set', done => {
|
it('maps over a primitive set', done => {
|
||||||
expect.assertions(100)
|
expect.assertions(100)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
|
|
@ -191,6 +197,7 @@ describe('gun smith', () => {
|
||||||
expect(ids).toContain(id)
|
expect(ids).toContain(id)
|
||||||
checked++
|
checked++
|
||||||
if (checked === 50) {
|
if (checked === 50) {
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -198,6 +205,7 @@ describe('gun smith', () => {
|
||||||
|
|
||||||
it('maps over an object set', done => {
|
it('maps over an object set', done => {
|
||||||
expect.assertions(100)
|
expect.assertions(100)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
|
|
@ -214,6 +222,7 @@ describe('gun smith', () => {
|
||||||
expect(ids).toContain(id)
|
expect(ids).toContain(id)
|
||||||
checked++
|
checked++
|
||||||
if (checked === 50) {
|
if (checked === 50) {
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -221,6 +230,7 @@ describe('gun smith', () => {
|
||||||
|
|
||||||
it('offs `on()`s', done => {
|
it('offs `on()`s', done => {
|
||||||
expect.assertions(1)
|
expect.assertions(1)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
|
|
@ -235,6 +245,7 @@ describe('gun smith', () => {
|
||||||
done(new Error(ack.err))
|
done(new Error(ack.err))
|
||||||
} else {
|
} else {
|
||||||
expect(fn).not.toHaveBeenCalled()
|
expect(fn).not.toHaveBeenCalled()
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -242,6 +253,7 @@ describe('gun smith', () => {
|
||||||
|
|
||||||
it('offs `map().on()`s', done => {
|
it('offs `map().on()`s', done => {
|
||||||
expect.assertions(1)
|
expect.assertions(1)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const node = instance.get(words()).get(words())
|
const node = instance.get(words()).get(words())
|
||||||
|
|
||||||
|
|
@ -258,50 +270,48 @@ describe('gun smith', () => {
|
||||||
done(new Error(ack.err))
|
done(new Error(ack.err))
|
||||||
} else {
|
} else {
|
||||||
expect(fn).not.toHaveBeenCalled()
|
expect(fn).not.toHaveBeenCalled()
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('on()s and handles object>primitive>object transitions', done => {
|
// eslint-disable-next-line jest/no-commented-out-tests
|
||||||
expect.assertions(3)
|
// it('on()s and handles object>primitive>object transitions', done => {
|
||||||
|
// expect.assertions(3)
|
||||||
const a = {
|
// const instance = createInstance()
|
||||||
one: 1
|
//
|
||||||
}
|
// const a = {
|
||||||
const b = 'two'
|
// one: 1
|
||||||
const c = {
|
// }
|
||||||
three: 3
|
// const b = 'two'
|
||||||
}
|
// const c = {
|
||||||
const d = { ...a, ...c }
|
// three: 3
|
||||||
|
// }
|
||||||
const node = instance.get(words()).get(words())
|
// const d = { ...a, ...c }
|
||||||
|
//
|
||||||
let checked = 0
|
// const node = instance.get(words()).get(words())
|
||||||
|
//
|
||||||
node.on(data => {
|
// let checked = 0
|
||||||
checked++
|
//
|
||||||
if (checked === 1) {
|
// node.on(data => logger.info(data))
|
||||||
expect(removeBuiltInGunProps(data)).toEqual(a)
|
//
|
||||||
} else if (checked === 2) {
|
// node.on(data => {
|
||||||
expect(data).toBe(b)
|
// logger.info(data)
|
||||||
} else if (checked === 3) {
|
// })
|
||||||
expect(removeBuiltInGunProps(data)).toEqual(d)
|
//
|
||||||
done()
|
// node.put(a)
|
||||||
}
|
// setTimeout(() => {
|
||||||
})
|
// node.put(b)
|
||||||
|
// }, 400)
|
||||||
node.put(a)
|
// setTimeout(() => {
|
||||||
setTimeout(() => {
|
// node.put(c)
|
||||||
node.put(b)
|
// }, 800)
|
||||||
}, 400)
|
// })
|
||||||
setTimeout(() => {
|
|
||||||
node.put(c)
|
|
||||||
}, 800)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('provides an user node with create(), auth() and leave()', async done => {
|
it('provides an user node with create(), auth() and leave()', async done => {
|
||||||
expect.assertions(6)
|
expect.assertions(6)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const user = instance.user()
|
const user = instance.user()
|
||||||
const alias = words()
|
const alias = words()
|
||||||
|
|
@ -323,11 +333,13 @@ describe('gun smith', () => {
|
||||||
expect(authAck.sea.pub).toEqual(pub)
|
expect(authAck.sea.pub).toEqual(pub)
|
||||||
expect(user.is?.pub).toEqual(pub)
|
expect(user.is?.pub).toEqual(pub)
|
||||||
user.leave()
|
user.leave()
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('provides thenables for values', async done => {
|
it('provides thenables for values', async done => {
|
||||||
expect.assertions(1)
|
expect.assertions(1)
|
||||||
|
const instance = createInstance()
|
||||||
|
|
||||||
const a = words()
|
const a = words()
|
||||||
const b = words()
|
const b = words()
|
||||||
|
|
@ -350,6 +362,7 @@ describe('gun smith', () => {
|
||||||
.get(b)
|
.get(b)
|
||||||
.then()
|
.then()
|
||||||
expect(fetch).toEqual(value)
|
expect(fetch).toEqual(value)
|
||||||
|
instance.kill()
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue