feat(ui): make Graph class's getMetadataNode public

This commit is contained in:
psychedelicious 2024-06-28 18:25:09 +10:00
parent c5172d4c5a
commit 0c26d28278
2 changed files with 14 additions and 14 deletions

View File

@ -545,14 +545,14 @@ describe('Graph', () => {
});
describe('metadata utils', () => {
describe('_getMetadataNode', () => {
describe('getMetadataNode', () => {
it("should get the metadata node, creating it if it doesn't exist", () => {
const g = new Graph();
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(metadata.id).toBe('core_metadata');
expect(metadata.type).toBe('core_metadata');
g.upsertMetadata({ test: 'test' });
const metadata2 = g._getMetadataNode();
const metadata2 = g.getMetadataNode();
expect(metadata2).toHaveProperty('test');
});
});
@ -561,14 +561,14 @@ describe('Graph', () => {
it('should add metadata to the metadata node', () => {
const g = new Graph();
g.upsertMetadata({ test: 'test' });
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(metadata).toHaveProperty('test');
});
it('should update metadata on the metadata node', () => {
const g = new Graph();
g.upsertMetadata({ test: 'test' });
g.upsertMetadata({ test: 'test2' });
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(metadata.test).toBe('test2');
});
});
@ -578,14 +578,14 @@ describe('Graph', () => {
const g = new Graph();
g.upsertMetadata({ test: 'test', test2: 'test2' });
g.removeMetadata(['test']);
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(metadata).not.toHaveProperty('test');
});
it('should remove multiple metadata from the metadata node', () => {
const g = new Graph();
g.upsertMetadata({ test: 'test', test2: 'test2' });
g.removeMetadata(['test', 'test2']);
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(metadata).not.toHaveProperty('test');
expect(metadata).not.toHaveProperty('test2');
});
@ -615,7 +615,7 @@ describe('Graph', () => {
});
g.upsertMetadata({ test: 'test' });
g.setMetadataReceivingNode(n1);
const metadata = g._getMetadataNode();
const metadata = g.getMetadataNode();
expect(g.getEdgesFrom(metadata as unknown as AnyInvocation).length).toBe(1);
expect(g.getEdgesTo(n1).length).toBe(1);
});

View File

@ -356,10 +356,10 @@ export class Graph {
//#region Metadata
/**
* INTERNAL: Get the metadata node. If it does not exist, it is created.
* Get the metadata node. If it does not exist, it is created.
* @returns The metadata node.
*/
_getMetadataNode(): S['CoreMetadataInvocation'] {
getMetadataNode(): S['CoreMetadataInvocation'] {
try {
const node = this.getNode(METADATA) as AnyInvocationIncMetadata;
assert(node.type === 'core_metadata');
@ -378,7 +378,7 @@ export class Graph {
* @returns The metadata node.
*/
upsertMetadata(metadata: Partial<S['CoreMetadataInvocation']>): S['CoreMetadataInvocation'] {
const node = this._getMetadataNode();
const node = this.getMetadataNode();
Object.assign(node, metadata);
return node;
}
@ -389,7 +389,7 @@ export class Graph {
* @returns The metadata node
*/
removeMetadata(keys: string[]): S['CoreMetadataInvocation'] {
const metadataNode = this._getMetadataNode();
const metadataNode = this.getMetadataNode();
for (const k of keys) {
unset(metadataNode, k);
}
@ -417,9 +417,9 @@ export class Graph {
*/
setMetadataReceivingNode(node: AnyInvocation): void {
// @ts-expect-error `Graph` excludes `core_metadata` nodes due to its excessively wide typing
this.deleteEdgesFrom(this._getMetadataNode());
this.deleteEdgesFrom(this.getMetadataNode());
// @ts-expect-error `Graph` excludes `core_metadata` nodes due to its excessively wide typing
this.addEdge(this._getMetadataNode(), 'metadata', node, 'metadata');
this.addEdge(this.getMetadataNode(), 'metadata', node, 'metadata');
}
//#endregion