From 89effbe610e03385e9e817224d8efb9d2a65cdbd Mon Sep 17 00:00:00 2001
From: Albin Henriksson <albhe428@student.liu.se>
Date: Thu, 18 Feb 2021 13:07:46 +0100
Subject: [PATCH] #7: Added a script to client coverage report to format xml

---
 .gitlab-ci.yml               |  1 +
 .gitlab/client.gitlab-ci.yml | 17 +++++++++++++++++
 client/coverage_report.py    |  8 ++++++++
 client/src/App.tsx           |  2 +-
 4 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 client/coverage_report.py

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b724e32f..eb60c5f8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,7 @@
 stages:
   - setup
   - test
+  - coverage_report
 
 include:
   - local: .gitlab/server.gitlab-ci.yml
diff --git a/.gitlab/client.gitlab-ci.yml b/.gitlab/client.gitlab-ci.yml
index d0850d79..3e979d73 100644
--- a/.gitlab/client.gitlab-ci.yml
+++ b/.gitlab/client.gitlab-ci.yml
@@ -51,6 +51,23 @@ client:test:
     - cd client
     - npm run test:coverage
   coverage: /All files\s*\|\s*([\d\.]+)/
+  artifacts:
+    reports:
+      path: client/output/coverage/jest/cobertura-coverage.xml
+      expire_in: 5 min
+
+client:coverage_report:
+  image: python
+  stage: coverage_report
+  only:
+    refs:
+      - dev
+      - merge_requests
+    changes:
+      - client/**/*
+  script:
+    - cd client
+    - python coverage_report.py
   artifacts:
     reports:
       cobertura: client/output/coverage/jest/cobertura-coverage.xml
diff --git a/client/coverage_report.py b/client/coverage_report.py
new file mode 100644
index 00000000..c6cd3763
--- /dev/null
+++ b/client/coverage_report.py
@@ -0,0 +1,8 @@
+import xml.etree.ElementTree as et
+
+tree = et.parse('output/coverage/jest/cobertura-coverage.xml')
+root = tree.getroot()
+for package_class in tree.find('.//packages'):
+  package_class.set('name', 'client.' + package_class.attrib.get('name'))
+  package_class.set('filename', 'client/' + package_class.attrib.get('filename'))
+tree.write('output/coverage/jest/cobertura-coverage.xml')
diff --git a/client/src/App.tsx b/client/src/App.tsx
index 931b58fa..fb88a8f1 100644
--- a/client/src/App.tsx
+++ b/client/src/App.tsx
@@ -6,7 +6,7 @@ import logo from './logo.svg'
 interface Message {
   message: string
 }
-
+//test
 const App: React.FC = () => {
   const [currentMessage, setCurrentMessage] = useState<Message>()
   useEffect(() => {
-- 
GitLab