Skip to content

Commit bd4bebd

Browse files
authored
test: dynamic entities test (#10)
* test: data block test * test: text block tests * test: account entity test
1 parent 74477db commit bd4bebd

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

src/core/account.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { expect, it } from 'vitest';
2+
import { make } from './account.js';
3+
import { NETWORK_IDS, SYSTEM_IDS } from '../system-ids.js';
4+
5+
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
6+
7+
it('should generate ops for an account entity', () => {
8+
const { accountId, ops } = make(ZERO_ADDRESS);
9+
const [accountTypeOp, networkOp, addressOp, nameOp] = ops;
10+
11+
expect(accountTypeOp.type).toBe('CREATE_RELATION');
12+
expect(accountTypeOp.relation.type).toBe(SYSTEM_IDS.TYPES_ATTRIBUTE);
13+
expect(accountTypeOp.relation.toEntity).toBe(SYSTEM_IDS.ACCOUNT_TYPE);
14+
expect(accountTypeOp.relation.fromEntity).toBe(accountId);
15+
16+
expect(networkOp.type).toBe('CREATE_RELATION');
17+
expect(networkOp.relation.type).toBe(SYSTEM_IDS.NETWORK_ATTRIBUTE);
18+
expect(networkOp.relation.toEntity).toBe(NETWORK_IDS.ETHEREUM);
19+
expect(networkOp.relation.fromEntity).toBe(accountId);
20+
21+
expect(addressOp.type).toBe('SET_TRIPLE');
22+
expect(addressOp.triple.attribute).toBe(SYSTEM_IDS.ADDRESS_ATTRIBUTE);
23+
expect(addressOp.triple.value.type).toBe('TEXT');
24+
expect(addressOp.triple.value.value).toBe(ZERO_ADDRESS);
25+
26+
expect(nameOp.type).toBe('SET_TRIPLE');
27+
expect(nameOp.triple.attribute).toBe(SYSTEM_IDS.NAME_ATTRIBUTE);
28+
expect(nameOp.triple.value.type).toBe('TEXT');
29+
expect(nameOp.triple.value.value).toBe(ZERO_ADDRESS);
30+
});

src/core/blocks/data.test.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import { expect, it } from 'vitest';
2+
import { make } from './data.js';
3+
import { SYSTEM_IDS } from '~/src/system-ids.js';
4+
5+
it('should generate ops for a data block entity', () => {
6+
const ops = make({
7+
fromId: 'test-entity-id',
8+
sourceType: 'QUERY',
9+
position: 'test-position',
10+
});
11+
12+
const [blockTypeOp, blockSourceTypeOp, blockRelationOp] = ops;
13+
14+
expect(blockTypeOp?.type).toBe('CREATE_RELATION');
15+
if (blockTypeOp?.type === 'CREATE_RELATION') {
16+
expect(blockTypeOp?.relation.type).toBe(SYSTEM_IDS.TYPES_ATTRIBUTE);
17+
expect(blockTypeOp?.relation.toEntity).toBe(SYSTEM_IDS.DATA_BLOCK);
18+
}
19+
20+
expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
21+
if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
22+
expect(blockSourceTypeOp?.relation.type).toBe(SYSTEM_IDS.DATA_SOURCE_TYPE_RELATION_TYPE);
23+
expect(blockSourceTypeOp?.relation.toEntity).toBe(SYSTEM_IDS.QUERY_DATA_SOURCE);
24+
}
25+
26+
expect(blockRelationOp?.type).toBe('CREATE_RELATION');
27+
if (blockRelationOp?.type === 'CREATE_RELATION') {
28+
expect(blockRelationOp?.relation.type).toBe(SYSTEM_IDS.BLOCKS);
29+
expect(blockRelationOp?.relation.fromEntity).toBe('test-entity-id');
30+
}
31+
32+
expect(ops.length).toBe(3);
33+
});
34+
35+
it('should generate ops for a data block entity with a name', () => {
36+
const ops = make({
37+
fromId: 'test-entity-id',
38+
sourceType: 'QUERY',
39+
position: 'test-position',
40+
name: 'test-name',
41+
});
42+
43+
const [blockTypeOp, blockSourceTypeOp, blockRelationOp, blockNameOp] = ops;
44+
45+
expect(blockTypeOp?.type).toBe('CREATE_RELATION');
46+
if (blockTypeOp?.type === 'CREATE_RELATION') {
47+
expect(blockTypeOp?.relation.type).toBe(SYSTEM_IDS.TYPES_ATTRIBUTE);
48+
expect(blockTypeOp?.relation.toEntity).toBe(SYSTEM_IDS.DATA_BLOCK);
49+
}
50+
51+
expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
52+
if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
53+
expect(blockSourceTypeOp?.relation.type).toBe(SYSTEM_IDS.DATA_SOURCE_TYPE_RELATION_TYPE);
54+
expect(blockSourceTypeOp?.relation.toEntity).toBe(SYSTEM_IDS.QUERY_DATA_SOURCE);
55+
}
56+
57+
expect(blockRelationOp?.type).toBe('CREATE_RELATION');
58+
if (blockRelationOp?.type === 'CREATE_RELATION') {
59+
expect(blockRelationOp?.relation.type).toBe(SYSTEM_IDS.BLOCKS);
60+
expect(blockRelationOp?.relation.fromEntity).toBe('test-entity-id');
61+
}
62+
63+
expect(blockNameOp?.type).toBe('SET_TRIPLE');
64+
if (blockNameOp?.type === 'SET_TRIPLE') {
65+
expect(blockNameOp?.triple.attribute).toBe(SYSTEM_IDS.NAME_ATTRIBUTE);
66+
expect(blockNameOp?.triple.value.type).toBe('TEXT');
67+
expect(blockNameOp?.triple.value.value).toBe('test-name');
68+
}
69+
});

src/core/blocks/text.test.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { expect, it } from 'vitest';
2+
import { make } from './text.js';
3+
import { SYSTEM_IDS } from '~/src/system-ids.js';
4+
5+
it('should generate ops for a text block entity', () => {
6+
const ops = make({
7+
fromId: 'test-entity-id',
8+
text: 'test-text',
9+
position: 'test-position',
10+
});
11+
12+
const [blockTypeOp, blockMarkdownTextOp, blockRelationOp] = ops;
13+
14+
expect(blockTypeOp?.type).toBe('CREATE_RELATION');
15+
if (blockTypeOp?.type === 'CREATE_RELATION') {
16+
expect(blockTypeOp?.relation.type).toBe(SYSTEM_IDS.TYPES_ATTRIBUTE);
17+
expect(blockTypeOp?.relation.toEntity).toBe(SYSTEM_IDS.TEXT_BLOCK);
18+
}
19+
20+
expect(blockMarkdownTextOp?.type).toBe('SET_TRIPLE');
21+
if (blockMarkdownTextOp?.type === 'SET_TRIPLE') {
22+
expect(blockMarkdownTextOp?.triple.attribute).toBe(SYSTEM_IDS.MARKDOWN_CONTENT);
23+
expect(blockMarkdownTextOp?.triple.value.type).toBe('TEXT');
24+
expect(blockMarkdownTextOp?.triple.value.value).toBe('test-text');
25+
}
26+
27+
expect(blockRelationOp?.type).toBe('CREATE_RELATION');
28+
if (blockRelationOp?.type === 'CREATE_RELATION') {
29+
expect(blockRelationOp?.relation.type).toBe(SYSTEM_IDS.BLOCKS);
30+
expect(blockRelationOp?.relation.fromEntity).toBe('test-entity-id');
31+
}
32+
33+
expect(ops.length).toBe(3);
34+
});

0 commit comments

Comments
 (0)