2025-11-21 17:34:05 -04:00
|
|
|
/*
|
|
|
|
|
Unit tests for the CounterOffer entity library.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import { assert } from 'chai'
|
|
|
|
|
import sinon from 'sinon'
|
|
|
|
|
|
|
|
|
|
import CounterOfferEntity from '../../../src/entities/counterOffer.js'
|
|
|
|
|
|
|
|
|
|
let sandbox
|
|
|
|
|
let uut
|
|
|
|
|
|
|
|
|
|
describe('#CounterOffer-Entity', () => {
|
2025-11-25 20:57:44 -04:00
|
|
|
before(async () => { })
|
2025-11-21 17:34:05 -04:00
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
|
uut = new CounterOfferEntity()
|
|
|
|
|
|
|
|
|
|
sandbox = sinon.createSandbox()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
afterEach(() => sandbox.restore())
|
|
|
|
|
|
|
|
|
|
describe('#validate', () => {
|
|
|
|
|
it('should throw an error if data is not provided', () => {
|
|
|
|
|
try {
|
2025-11-25 20:57:44 -04:00
|
|
|
uut.validate({})
|
2025-11-21 17:34:05 -04:00
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, 'Input to counterOffer.validate() must be an object with a data property.')
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it('should throw an error if nostrEventId is not provided', () => {
|
|
|
|
|
try {
|
|
|
|
|
uut.validate({ data: {} })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'nostrEventId' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it('should throw an error if provided takerAddr is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'takerAddr' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it('should throw an error if provided takerNpub is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'takerNpub' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
2025-11-25 20:57:44 -04:00
|
|
|
it('should throw an error if provided makerNpub is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
|
|
|
|
makerNpub: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'makerNpub' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
2025-11-21 17:34:05 -04:00
|
|
|
it('should throw an error if provided counterOfferAddr is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
2025-11-25 20:57:44 -04:00
|
|
|
makerNpub: 'npub',
|
2025-11-21 17:34:05 -04:00
|
|
|
counterOfferAddr: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'counterOfferAddr' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it('should throw an error if provided counterOfferUtxo is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
2025-11-25 20:57:44 -04:00
|
|
|
makerNpub: 'npub',
|
2025-11-21 17:34:05 -04:00
|
|
|
counterOfferAddr: 'counter offer address',
|
|
|
|
|
counterOfferUtxo: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'counterOfferUtxo' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
2025-11-25 20:57:44 -04:00
|
|
|
it('should throw an error if provided takerOfferUtxo is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
|
|
|
|
makerNpub: 'npub',
|
|
|
|
|
counterOfferAddr: 'counter offer address',
|
|
|
|
|
counterOfferUtxo: 'utxo txid',
|
|
|
|
|
takerOfferUtxo: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'takerOfferUtxo' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it('should throw an error if provided tokenId is not string', () => {
|
|
|
|
|
try {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
|
|
|
|
makerNpub: 'npub',
|
|
|
|
|
counterOfferAddr: 'counter offer address',
|
|
|
|
|
counterOfferUtxo: 'utxo txid',
|
|
|
|
|
takerOfferUtxo: 'utxo txid',
|
|
|
|
|
tokenId: 1234
|
|
|
|
|
}
|
|
|
|
|
uut.validate({ data: inObj })
|
|
|
|
|
} catch (err) {
|
|
|
|
|
assert.include(err.message, "Property 'tokenId' must be a string")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
2025-11-21 17:34:05 -04:00
|
|
|
it('should return a counter offer object', () => {
|
|
|
|
|
const inObj = {
|
|
|
|
|
nostrEventId: 'nostr event id',
|
|
|
|
|
takerAddr: 'taker address',
|
|
|
|
|
takerNpub: 'npub',
|
2025-11-25 20:57:44 -04:00
|
|
|
makerNpub: 'npub',
|
2025-11-21 17:34:05 -04:00
|
|
|
counterOfferAddr: 'counter offer address',
|
2025-11-25 20:57:44 -04:00
|
|
|
counterOfferUtxo: 'utxo txid',
|
|
|
|
|
takerOfferUtxo: 'utxo txid',
|
|
|
|
|
tokenId: 'token id'
|
2025-11-21 17:34:05 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const counterOfferEntity = uut.validate({ data: inObj })
|
|
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'nostrEventId')
|
|
|
|
|
assert.equal(counterOfferEntity.nostrEventId, inObj.nostrEventId)
|
|
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'takerAddr')
|
|
|
|
|
assert.equal(counterOfferEntity.takerAddr, inObj.takerAddr)
|
|
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'takerNpub')
|
|
|
|
|
assert.equal(counterOfferEntity.takerNpub, inObj.takerNpub)
|
|
|
|
|
|
2025-11-25 20:57:44 -04:00
|
|
|
assert.property(counterOfferEntity, 'makerNpub')
|
|
|
|
|
assert.equal(counterOfferEntity.makerNpub, inObj.makerNpub)
|
|
|
|
|
|
2025-11-21 17:34:05 -04:00
|
|
|
assert.property(counterOfferEntity, 'counterOfferAddr')
|
|
|
|
|
assert.equal(counterOfferEntity.counterOfferAddr, inObj.counterOfferAddr)
|
|
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'counterOfferUtxo')
|
|
|
|
|
assert.equal(counterOfferEntity.counterOfferUtxo, inObj.counterOfferUtxo)
|
2025-11-25 20:57:44 -04:00
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'takerOfferUtxo')
|
|
|
|
|
assert.equal(counterOfferEntity.takerOfferUtxo, inObj.takerOfferUtxo)
|
|
|
|
|
|
|
|
|
|
assert.property(counterOfferEntity, 'tokenId')
|
|
|
|
|
assert.equal(counterOfferEntity.tokenId, inObj.tokenId)
|
2025-11-21 17:34:05 -04:00
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
})
|