UNPKG

@biothings-explorer/query_graph_handler

Version:
807 lines (745 loc) 23.4 kB
const QueryGraphHelpder = require("../../src/helper"); describe("Test helper moduler", () => { const nodeObject1 = { getID() { return "n01" }, getCategory() { return "Node1Type" } } const nodeObject2 = { getID() { return "n02" }, getCategory() { return "Node2Type" } } const helper = new QueryGraphHelpder(); describe("Test _getInputQueryNodeID function", () => { test("If edge is reversed, should return the node ID of the object", () => { const edgeObject = { getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject } } const res = helper._getInputQueryNodeID(record); expect(res).toEqual('n01') }) test("If edge is not reversed, should return the node ID of the subject", () => { const edgeObject = { getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject } } const res = helper._getInputQueryNodeID(record); expect(res).toEqual('n02') }) }) describe("Test _getOutputQueryNodeID function", () => { test("If edge is reversed, should return the node ID of the subject", () => { const edgeObject = { getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject } } const res = helper._getOutputQueryNodeID(record); expect(res).toEqual('n02') }) test("If edge is not reversed, should return the node ID of the object", () => { const edgeObject = { getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject } } const res = helper._getOutputQueryNodeID(record); expect(res).toEqual('n01') }) }) describe("Test _getInputID function", () => { test("If edge is reversed, should return the primary ID of the output", () => { const edgeObject = { isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input" }] }, $output: { obj: [{ primaryID: "output" }] }, } const res = helper._getInputID(record); expect(res).toEqual('output') }) test("If edge is not reversed, should return the node ID of the subject", () => { const edgeObject = { isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input" }] }, $output: { obj: [{ primaryID: "output" }] }, } const res = helper._getInputID(record); expect(res).toEqual('input') }) }) describe("Test _getOutputID function", () => { test("If edge is reversed, should return the node ID of the subject", () => { const edgeObject = { isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input" }] }, $output: { obj: [{ primaryID: "output" }] }, } const res = helper._getOutputID(record); expect(res).toEqual('input') }) }) test("If edge is not reversed, should return the node ID of the object", () => { const edgeObject = { isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input" }] }, $output: { obj: [{ primaryID: "output" }] }, } const res = helper._getOutputID(record); expect(res).toEqual('output') }) describe("Test _getAPI function", () => { test("Edge Metadata including api name should return the name", () => { const record = { $edge_metadata: { api_name: 'MyGene.info API' } } const res = helper._getAPI(record); expect(res).toEqual('MyGene.info API') }) test("Edge Metadata NOT including api name should return an empty string", () => { const record = { $edge_metadata: { api_name1: 'MyGene.info API' } } const res = helper._getAPI(record); expect(res).toBeUndefined; }) }) describe("Test _getAPI function", () => { test("Edge Metadata including api name should return the name", () => { const record = { $edge_metadata: { api_name: 'MyGene.info API' } } const res = helper._getAPI(record); expect(res).toEqual('MyGene.info API') }) test("Edge Metadata NOT including api name should return an empty string", () => { const record = { $edge_metadata: { api_name1: 'MyGene.info API' } } const res = helper._getAPI(record); expect(res).toBeUndefined; }) }) describe("Test _getSource function", () => { test("Edge Metadata including source should return the source", () => { const record = { $edge_metadata: { api_name: 'MyGene.info API', source: 'CPDB' } } const res = helper._getSource(record); expect(res).toEqual('CPDB') }) test("Edge Metadata NOT including source should return an empty string", () => { const record = { $edge_metadata: { api_name1: 'MyGene.info API' } } const res = helper._getSource(record); expect(res).toBeUndefined; }) }) describe("Test _createUniqueEdgeID function", () => { const edgeObject = { isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject, api_name: 'MyGene.info API', source: 'CPDB' }, $input: { obj: [{ primaryID: "input" }] }, $output: { obj: [{ primaryID: "output" }] }, } const res = helper._createUniqueEdgeID(record); expect(res).toEqual('input-output-MyGene.info API-CPDB') }) describe("Test _getInputCategory function", () => { test("If edge is reversed, should return the category of the object", () => { const edgeObject = { isReversed() { return true; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", semanticType: "inputType" }] }, $output: { obj: [{ primaryID: "output", semanticType: "outputType" }] }, } const res = helper._getInputCategory(record); expect(res).toEqual('outputType') }) test("If edge is not reversed, should return the node ID of the subject", () => { const edgeObject = { isReversed() { return false; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", semanticType: "inputType" }] }, $output: { obj: [{ primaryID: "output", semanticType: "outputType" }] }, } const res = helper._getInputCategory(record); expect(res).toEqual('inputType') }) }) describe("Test _getOutputCategory function", () => { test("If edge is reversed, should return the node ID of the subject", () => { const edgeObject = { isReversed() { return true; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", semanticType: "inputType" }] }, $output: { obj: [{ primaryID: "output", semanticType: "outputType" }] }, } const res = helper._getOutputCategory(record); expect(res).toEqual('inputType') }) }) test("If edge is not reversed, should return the node ID of the object", () => { const edgeObject = { isReversed() { return false; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", semanticType: "inputType" }] }, $output: { obj: [{ primaryID: "output", semanticType: "outputType" }] }, } const res = helper._getOutputCategory(record); expect(res).toEqual('outputType') }) describe("Test _getInputLabel function", () => { test("If edge is reversed, should return the label of the output", () => { const edgeObject = { isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel' }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel' }], }, } const res = helper._getInputLabel(record); expect(res).toEqual('outputLabel') }) test("If edge is not reversed, should return the node label of the subject", () => { const edgeObject = { isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel' }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel' }], }, } const res = helper._getInputLabel(record); expect(res).toEqual('inputLabel') }) }) describe("Test _getOutputLabel function", () => { test("If edge is reversed, should return the label of the subject", () => { const edgeObject = { isReversed() { return true; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel' }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel' }], }, } const res = helper._getOutputLabel(record); expect(res).toEqual('inputLabel') }) }) test("If edge is not reversed, should return the node ID of the object", () => { const edgeObject = { isReversed() { return false; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel' }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel' }], }, } const res = helper._getOutputLabel(record); expect(res).toEqual('outputLabel') }) describe("Test _getInputEquivalentIdentifiers function", () => { test("If edge is reversed, should return the curies of the output", () => { const edgeObject = { isReversed() { return true; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel', curies: [ '789' ] }], }, } const res = helper._getInputEquivalentIds(record); expect(res).toEqual(['789']) }) test("If error occurred, return null", () => { const edgeObject = { isReversed() { throw new Error(); } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: { primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }, }, $output: { obj: { primaryID: "output", label: 'outputLabel', curies: [ '789' ] }, }, } const res = helper._getInputEquivalentIds(record); expect(res).toBeNull; }) test("If edge is not reversed, should return the curies of the subject", () => { const edgeObject = { isReversed() { return false; } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel', curies: [ '789' ] }], }, } const res = helper._getInputEquivalentIds(record); expect(res).toEqual(['123', '456']) }) }) describe("Test _getOutputEquivalentIdentifiers function", () => { test("If edge is reversed, should return the curies of the subject", () => { const edgeObject = { isReversed() { return true; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel', curies: [ '789' ] }], }, } const res = helper._getOutputEquivalentIds(record); expect(res).toEqual(['123', '456']) }) }) test("If error occurred, return null", () => { const edgeObject = { isReversed() { throw new Error(); } } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel', curies: [ '789' ] }], }, } const res = helper._getOutputEquivalentIds(record); expect(res).toBeNull; }) test("If edge is not reversed, should return the curies of the object", () => { const edgeObject = { isReversed() { return false; }, getObject() { return nodeObject1 }, getSubject() { return nodeObject2 }, } const record = { $edge_metadata: { trapi_qEdge_obj: edgeObject }, $input: { obj: [{ primaryID: "input", label: 'inputLabel', curies: ['123', '456'] }], }, $output: { obj: [{ primaryID: "output", label: 'outputLabel', curies: [ '789' ] }], }, } const res = helper._getOutputEquivalentIds(record); expect(res).toEqual(['789']) }) test("Test _generateHash function", () => { const res = helper._generateHash('123'); expect(res.length).toBe(32); const res1 = helper._generateHash('kkkkkkkkk'); expect(res1.length).toBe(32); }) })