499 lines
12 KiB
TypeScript
499 lines
12 KiB
TypeScript
import {
|
|
assert,
|
|
describe,
|
|
test,
|
|
clearStore,
|
|
beforeAll,
|
|
afterAll,
|
|
logStore,
|
|
log,
|
|
} from 'matchstick-as/assembly/index';
|
|
import { BigInt, Bytes } from '@graphprotocol/graph-ts';
|
|
import '../generated/schema';
|
|
import '../generated/FleekNFA/FleekNFA';
|
|
import '../src/fleek-nfa';
|
|
import './utils';
|
|
import {
|
|
NewBuild,
|
|
NewTokenDescription,
|
|
NewTokenENS,
|
|
NewTokenExternalURL,
|
|
NewTokenName,
|
|
Transfer,
|
|
} from '../generated/FleekNFA/FleekNFA';
|
|
import {
|
|
CONTRACT,
|
|
createNewBuildEvent,
|
|
createNewTokenDescriptionEvent,
|
|
createNewTokenENSEvent,
|
|
createNewTokenExternalURLEvent,
|
|
createNewTokenNameEvent,
|
|
createTransferEvent,
|
|
handleNewBuilds,
|
|
handleNewTokenDescriptions,
|
|
handleNewTokenENSAddresses,
|
|
handleNewTokenExternalURLs,
|
|
handleNewTokenNames,
|
|
handleTransfers,
|
|
makeEventId,
|
|
TOKEN_OWNER_ONE,
|
|
TOKEN_OWNER_TWO,
|
|
} from './utils';
|
|
|
|
describe('Describe entity assertions', () => {
|
|
beforeAll(() => {
|
|
// TRANSFERS
|
|
let transfers: Transfer[] = [];
|
|
transfers.push(
|
|
createTransferEvent(0, CONTRACT, TOKEN_OWNER_ONE, BigInt.fromI32(0))
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(1, CONTRACT, TOKEN_OWNER_TWO, BigInt.fromI32(1))
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(2, CONTRACT, TOKEN_OWNER_ONE, BigInt.fromI32(2))
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(3, CONTRACT, TOKEN_OWNER_ONE, BigInt.fromI32(3))
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(
|
|
4,
|
|
TOKEN_OWNER_TWO,
|
|
TOKEN_OWNER_ONE,
|
|
BigInt.fromI32(1)
|
|
)
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(5, CONTRACT, TOKEN_OWNER_TWO, BigInt.fromI32(4))
|
|
);
|
|
transfers.push(
|
|
createTransferEvent(
|
|
6,
|
|
TOKEN_OWNER_ONE,
|
|
TOKEN_OWNER_TWO,
|
|
BigInt.fromI32(0)
|
|
)
|
|
);
|
|
handleTransfers(transfers);
|
|
|
|
// NEW TOKEN NAME EVENTS
|
|
let newTokenNames: NewTokenName[] = [];
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
0,
|
|
BigInt.fromI32(0),
|
|
'Token Zero New Name',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
1,
|
|
BigInt.fromI32(1),
|
|
'Token One New Name',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
2,
|
|
BigInt.fromI32(2),
|
|
'Token Two New Name',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
3,
|
|
BigInt.fromI32(3),
|
|
'Token Three New Name',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
4,
|
|
BigInt.fromI32(4),
|
|
'Token Four New Name',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenNames.push(
|
|
createNewTokenNameEvent(
|
|
5,
|
|
BigInt.fromI32(0),
|
|
'Token Zero New Name By New Owner',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
handleNewTokenNames(newTokenNames);
|
|
|
|
// New Token ENS Addresses
|
|
let newENSAddresses: NewTokenENS[] = [];
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
0,
|
|
BigInt.fromI32(0),
|
|
'New_Token_Zero_ENS',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
1,
|
|
BigInt.fromI32(1),
|
|
'New_Token_One_ENS',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
2,
|
|
BigInt.fromI32(2),
|
|
'New_Token_Two_ENS',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
3,
|
|
BigInt.fromI32(3),
|
|
'New_Token_Three_ENS',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
4,
|
|
BigInt.fromI32(4),
|
|
'New_Token_Four_ENS',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newENSAddresses.push(
|
|
createNewTokenENSEvent(
|
|
5,
|
|
BigInt.fromI32(5),
|
|
'New_Token_Five_ENS',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
handleNewTokenENSAddresses(newENSAddresses);
|
|
|
|
// New Token Descriptions
|
|
let newTokenDescriptions: NewTokenDescription[] = [];
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
0,
|
|
BigInt.fromI32(0),
|
|
'New Token Zero Description',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
1,
|
|
BigInt.fromI32(1),
|
|
'New Token One Description',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
2,
|
|
BigInt.fromI32(2),
|
|
'New Token Two Description',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
3,
|
|
BigInt.fromI32(3),
|
|
'New Token Three Description',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
4,
|
|
BigInt.fromI32(4),
|
|
'New Token Four Description',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenDescriptions.push(
|
|
createNewTokenDescriptionEvent(
|
|
5,
|
|
BigInt.fromI32(5),
|
|
'New Token Five Description By New Owner',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
handleNewTokenDescriptions(newTokenDescriptions);
|
|
|
|
// New Token External URLs
|
|
let newTokenExternalURLs: NewTokenExternalURL[] = [];
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
0,
|
|
BigInt.fromI32(0),
|
|
'https://0_external.url',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
1,
|
|
BigInt.fromI32(1),
|
|
'https://1_external.url',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
2,
|
|
BigInt.fromI32(2),
|
|
'https://2_external.url',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
3,
|
|
BigInt.fromI32(3),
|
|
'https://3_external.url',
|
|
TOKEN_OWNER_ONE
|
|
)
|
|
);
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
4,
|
|
BigInt.fromI32(4),
|
|
'https://4_external.url',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
newTokenExternalURLs.push(
|
|
createNewTokenExternalURLEvent(
|
|
5,
|
|
BigInt.fromI32(5),
|
|
'https://5_external.url',
|
|
TOKEN_OWNER_TWO
|
|
)
|
|
);
|
|
handleNewTokenExternalURLs(newTokenExternalURLs);
|
|
|
|
// New Token External URLs
|
|
let newBuilds: NewBuild[] = [];
|
|
newBuilds.push(
|
|
createNewBuildEvent(0, BigInt.fromI32(0), 'hash0_0', TOKEN_OWNER_ONE)
|
|
);
|
|
newBuilds.push(
|
|
createNewBuildEvent(1, BigInt.fromI32(1), 'hash1_0', TOKEN_OWNER_TWO)
|
|
);
|
|
newBuilds.push(
|
|
createNewBuildEvent(2, BigInt.fromI32(2), 'hash2_0', TOKEN_OWNER_ONE)
|
|
);
|
|
newBuilds.push(
|
|
createNewBuildEvent(3, BigInt.fromI32(3), 'hash3_0', TOKEN_OWNER_ONE)
|
|
);
|
|
newBuilds.push(
|
|
createNewBuildEvent(4, BigInt.fromI32(4), 'hash4_0', TOKEN_OWNER_TWO)
|
|
);
|
|
newBuilds.push(
|
|
createNewBuildEvent(5, BigInt.fromI32(5), 'hash5_0', TOKEN_OWNER_TWO)
|
|
);
|
|
handleNewBuilds(newBuilds);
|
|
|
|
logStore();
|
|
});
|
|
|
|
afterAll(() => {
|
|
clearStore();
|
|
});
|
|
|
|
describe('Transfers', () => {
|
|
test('Check the number of transfers to be valid', () => {
|
|
assert.entityCount('Transfer', 7);
|
|
});
|
|
test('Check the `from` and `to` fields of each transfer to be equal to expected values', () => {
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(0),
|
|
'to',
|
|
'0x2000000000000000000000000000000000000002'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(1),
|
|
'to',
|
|
'0x3000000000000000000000000000000000000003'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(2),
|
|
'to',
|
|
'0x2000000000000000000000000000000000000002'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(3),
|
|
'to',
|
|
'0x2000000000000000000000000000000000000002'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(4),
|
|
'to',
|
|
'0x2000000000000000000000000000000000000002'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(5),
|
|
'to',
|
|
'0x3000000000000000000000000000000000000003'
|
|
);
|
|
assert.fieldEquals(
|
|
'Transfer',
|
|
makeEventId(6),
|
|
'to',
|
|
'0x3000000000000000000000000000000000000003'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('New Token Name Events', () => {
|
|
test('Check the number of NewTokenName to be valid', () => {
|
|
assert.entityCount('NewTokenName', 6);
|
|
});
|
|
test('Check the `name` and `triggeredBy` fields of each new token name event to be equal to expected values', () => {
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(0),
|
|
'name',
|
|
'Token Zero New Name'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(1),
|
|
'name',
|
|
'Token One New Name'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(2),
|
|
'name',
|
|
'Token Two New Name'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(3),
|
|
'name',
|
|
'Token Three New Name'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(4),
|
|
'name',
|
|
'Token Four New Name'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenName',
|
|
makeEventId(5),
|
|
'name',
|
|
'Token Zero New Name By New Owner'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('New Token External URL Events', () => {
|
|
test('Check the number of newTokenExternalURl events to be valid', () => {
|
|
assert.entityCount('NewTokenExternalURL', 6);
|
|
});
|
|
test('Check the `description` and `triggeredBy` fields of each new token name event to be equal to expected values', () => {
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(0),
|
|
'externalURL',
|
|
'https://0_external.url'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(1),
|
|
'externalURL',
|
|
'https://1_external.url'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(2),
|
|
'externalURL',
|
|
'https://2_external.url'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(3),
|
|
'externalURL',
|
|
'https://3_external.url'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(4),
|
|
'externalURL',
|
|
'https://4_external.url'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenExternalURL',
|
|
makeEventId(5),
|
|
'externalURL',
|
|
'https://5_external.url'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('New Token Description Events', () => {
|
|
test('Check the number of NewTokenDescription events to be valid', () => {
|
|
assert.entityCount('NewTokenDescription', 6);
|
|
});
|
|
test('Check the `description` and `triggeredBy` fields of each new token name event to be equal to expected values', () => {
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(0),
|
|
'description',
|
|
'New Token Zero Description'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(1),
|
|
'description',
|
|
'New Token One Description'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(2),
|
|
'description',
|
|
'New Token Two Description'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(3),
|
|
'description',
|
|
'New Token Three Description'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(4),
|
|
'description',
|
|
'New Token Four Description'
|
|
);
|
|
assert.fieldEquals(
|
|
'NewTokenDescription',
|
|
makeEventId(5),
|
|
'description',
|
|
'New Token Five Description By New Owner'
|
|
);
|
|
});
|
|
});
|
|
});
|