diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7ef08bea956cfef8f3aebfa59a6317c1ce0d4115..93e7f48a5a83b37715f867b6122d534f01019aab 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,10 +28,24 @@ build_package:
       - dist
     expire_in: "1w"
 
+unit_test:
+  stage: test
+  needs: []
+  artifacts:
+    paths:
+      - coverage
+    expire_in: 1 week
+    reports:
+      junit:
+        - coverage/junit.xml
+  script:
+    - npm run coverage
 
 
 sonarcloud-check:
   stage: quality
+  needs:
+    - unit_test
   image:
     name: sonarsource/sonar-scanner-cli:latest
     entrypoint: [ "" ]
diff --git a/package-lock.json b/package-lock.json
index 5884002f4babc8f6723bd4d349c04f0f905a4273..53c53681741cb1bcf2bab8014f13e06e1f2f2afb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@astron-sd/telescope-specification-models",
-  "version": "0.0.46",
+  "version": "0.0.47",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@astron-sd/telescope-specification-models",
-      "version": "0.0.46",
+      "version": "0.0.47",
       "dependencies": {
         "install": "^0.13.0",
         "npm": "^10.8.1"
diff --git a/package.json b/package.json
index 49c73e7c71b001191491c8dcff64d31e8458dc44..996494ae96885e2bcb1c064fe939de593b9aeaa0 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astron-sd/telescope-specification-models",
   "private": false,
-  "version": "0.0.46",
+  "version": "0.0.47",
   "type": "module",
   "main": "./dist/telescope-specification-models.cjs",
   "module": "./dist/telescope-specification-models.es.js",