diff --git a/src/tests/insights/populateTemplate.test.ts b/src/tests/insights/populateTemplate.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fafa759ac88fd18f5416cbc8684c67f3a2d61fd6
--- /dev/null
+++ b/src/tests/insights/populateTemplate.test.ts
@@ -0,0 +1,50 @@
+import { expect, test, describe, it } from 'bun:test';
+import { populateTemplate } from './../../utils/insights';
+import { type GraphQueryResultMetaFromBackend } from 'ts-common';
+
+const mockResult: GraphQueryResultMetaFromBackend = {
+  metaData: {
+    topological: {
+      density: 0,
+      self_loops: 0,
+    },
+    nodes: {
+      count: 1,
+      labels: ['NodeTypeA'],
+      types: {
+        NodeTypeA: {
+          count: 1,
+          attributes: {
+            age: {
+              attributeType: 'number',
+              statistics: {
+                min: 10,
+                max: 50,
+                average: 42,
+                count: 100,
+              },
+            },
+          },
+        },
+      },
+    },
+    edges: {
+      count: 0,
+      labels: [],
+      types: {},
+    },
+  },
+  nodeCounts: { updatedAt: 2313 },
+  nodes: [],
+  edges: [],
+};
+
+describe('populateTemplate', () => {
+  it('should replace statistic variables correctly', async () => {
+    const template = 'The mean value is {{ statistic:NodeTypeA • age • average }}.';
+    const expectedOutput = 'The mean value is 42 .';
+    const result = await populateTemplate(template, mockResult, []);
+
+    expect(result).toBe(expectedOutput);
+  });
+});