non-fungible-apps/subgraph/tests/fleek-nfa.test.ts

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'
);
});
});
});