test: create universal tests and rewrite nodes to have optional parameters for more code coverage

ref: N25B-362
This commit is contained in:
Björn Otgaar
2025-12-02 12:01:23 +01:00
parent d4393e7635
commit a95fbd15e6
8 changed files with 153 additions and 94 deletions

View File

@@ -40,14 +40,11 @@ export default function EndNode(props: NodeProps<EndNode>) {
/**
* Functionality for reducing this node into its more compact json program
* @param node the node to reduce
* @param nodes all nodes present
* @param _nodes all nodes present
* @returns Dictionary, {id: node.id}
*/
export function EndReduce(node: Node, nodes: Node[]) {
export function EndReduce(node: Node, _nodes: Node[]) {
// Replace this for nodes functionality
if (nodes.length <= -1) {
console.warn("Impossible nodes length in EndReduce")
}
return {
id: node.id
}
@@ -55,13 +52,9 @@ export function EndReduce(node: Node, nodes: Node[]) {
/**
* Any connection functionality that should get called when a connection is made to this node type (end)
* @param thisNode the node of which the functionality gets called
* @param otherNode the other node which has connected
* @param isThisSource whether this node is the one that is the source of the connection
* @param _thisNode the node of which the functionality gets called
* @param _otherNode the other node which has connected
* @param _isThisSource whether this node is the one that is the source of the connection
*/
export function EndConnects(thisNode: Node, otherNode: Node, isThisSource: boolean) {
// Replace this for connection logic
if (thisNode == undefined && otherNode == undefined && isThisSource == false) {
console.warn("Impossible node connection called in EndConnects")
}
export function EndConnects(_thisNode: Node, _otherNode: Node, _isThisSource: boolean) {
}

View File

@@ -77,13 +77,9 @@ export default function GoalNode(props: NodeProps<GoalNode>) {
/**
* Reduces each Goal, including its children down into its relevant data.
* @param node: The Node Properties of this node.
* @param nodes: all the nodes in the graph
* @param _nodes: all the nodes in the graph
*/
export function GoalReduce(node: Node, nodes: Node[]) {
// Replace this for nodes functionality
if (nodes.length <= -1) {
console.warn("Impossible nodes length in GoalReduce")
}
export function GoalReduce(node: Node, _nodes: Node[]) {
const data = node.data as GoalNodeData;
return {
id: node.id,
@@ -93,9 +89,6 @@ export function GoalReduce(node: Node, nodes: Node[]) {
}
}
export function GoalConnects(thisNode: Node, otherNode: Node, isThisSource: boolean) {
export function GoalConnects(_thisNode: Node, _otherNode: Node, _isThisSource: boolean) {
// Replace this for connection logic
if (thisNode == undefined && otherNode == undefined && isThisSource == false) {
console.warn("Impossible node connection called in EndConnects")
}
}

View File

@@ -61,13 +61,9 @@ export default function NormNode(props: NodeProps<NormNode>) {
/**
* Reduces each Norm, including its children down into its relevant data.
* @param node: The Node Properties of this node.
* @param nodes: all the nodes in the graph
* @param _nodes: all the nodes in the graph
*/
export function NormReduce(node: Node, nodes: Node[]) {
// Replace this for nodes functionality
if (nodes.length <= -1) {
console.warn("Impossible nodes length in NormReduce")
}
export function NormReduce(node: Node, _nodes: Node[]) {
const data = node.data as NormNodeData;
return {
id: node.id,
@@ -76,9 +72,5 @@ export function NormReduce(node: Node, nodes: Node[]) {
}
}
export function NormConnects(thisNode: Node, otherNode: Node, isThisSource: boolean) {
// Replace this for connection logic
if (thisNode == undefined && otherNode == undefined && isThisSource == false) {
console.warn("Impossible node connection called in EndConnects")
}
export function NormConnects(_thisNode: Node, _otherNode: Node, _isThisSource: boolean) {
}

View File

@@ -78,8 +78,10 @@ export function PhaseReduce(node: Node, nodes: Node[]) {
.filter(([t]) => !nodesNotInPhase.includes(t))
.map(([t]) => t);
// children nodes
const childrenNodes = nodes.filter((node) => data.children.includes(node.id));
// children nodes - make sure to check for empty arrays
let childrenNodes: any[] = [];
if (data.children)
childrenNodes = nodes.filter((node) => data.children.includes(node.id));
// Build the result object
const result: Record<string, unknown> = {

View File

@@ -40,14 +40,11 @@ export default function StartNode(props: NodeProps<StartNode>) {
/**
* The reduce function for this node type.
* @param node this node
* @param nodes all the nodes in the graph
* @param _nodes all the nodes in the graph
* @returns a reduced structure of this node
*/
export function StartReduce(node: Node, nodes: Node[]) {
export function StartReduce(node: Node, _nodes: Node[]) {
// Replace this for nodes functionality
if (nodes.length <= -1) {
console.warn("Impossible nodes length in StartReduce")
}
return {
id: node.id
}
@@ -55,13 +52,9 @@ export function StartReduce(node: Node, nodes: Node[]) {
/**
* This function is called whenever a connection is made with this node type (start)
* @param thisNode the node of this node type which function is called
* @param otherNode the other node which was part of the connection
* @param isThisSource whether this instance of the node was the source in the connection, true = yes.
* @param _thisNode the node of this node type which function is called
* @param _otherNode the other node which was part of the connection
* @param _isThisSource whether this instance of the node was the source in the connection, true = yes.
*/
export function StartConnects(thisNode: Node, otherNode: Node, isThisSource: boolean) {
// Replace this for connection logic
if (thisNode == undefined && otherNode == undefined && isThisSource == false) {
console.warn("Impossible node connection called in EndConnects")
}
export function StartConnects(_thisNode: Node, _otherNode: Node, _isThisSource: boolean) {
}

View File

@@ -68,13 +68,9 @@ export default function TriggerNode(props: NodeProps<TriggerNode>) {
/**
* Reduces each Trigger, including its children down into its relevant data.
* @param node: The Node Properties of this node.
* @param nodes: all the nodes in the graph.
* @param _nodes: all the nodes in the graph.
*/
export function TriggerReduce(node: Node, nodes: Node[]) {
// Replace this for nodes functionality
if (nodes.length <= -1) {
console.warn("Impossible nodes length in TriggerReduce")
}
export function TriggerReduce(node: Node, _nodes: Node[]) {
const data = node.data as TriggerNodeData;
return {
label: data.label,
@@ -84,15 +80,12 @@ export function TriggerReduce(node: Node, nodes: Node[]) {
/**
* This function is called whenever a connection is made with this node type (trigger)
* @param thisNode the node of this node type which function is called
* @param otherNode the other node which was part of the connection
* @param isThisSource whether this instance of the node was the source in the connection, true = yes.
* @param _thisNode the node of this node type which function is called
* @param _otherNode the other node which was part of the connection
* @param _isThisSource whether this instance of the node was the source in the connection, true = yes.
*/
export function TriggerConnects(thisNode: Node, otherNode: Node, isThisSource: boolean) {
// Replace this for connection logic
if (thisNode == undefined && otherNode == undefined && isThisSource == false) {
console.warn("Impossible node connection called in EndConnects")
}
export function TriggerConnects(_thisNode: Node, _otherNode: Node, _isThisSource: boolean) {
}
// Definitions for the possible triggers, being keywords and emotions