1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/pkg/sonar/report_test.go
Marc Bormeth b213af1089
Add Coverage Info to sonarscan.json (#3262)
* Add coverage metrics to report + influx

* Write unit tests

* Add integration test for Sonar Measures Component Service
2021-12-08 09:02:12 +01:00

46 lines
1.1 KiB
Go

package sonar
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
)
var fileContent string
var fileName string
func writeToFileMock(f string, d []byte, p os.FileMode) error {
fileContent = string(d)
fileName = f
return nil
}
func TestWriteReport(t *testing.T) {
// init
const expected = `{"serverUrl":"https://sonarcloud.io","projectKey":"Piper-Validation/Golang","taskId":"mock.Anything","numberOfIssues":{"blocker":0,"critical":1,"major":2,"minor":3,"info":4},"coverage":{"coverage":13.7,"lineCoverage":37.1,"branchCoverage":42}}`
testData := ReportData{
ServerURL: "https://sonarcloud.io",
ProjectKey: "Piper-Validation/Golang",
TaskID: mock.Anything,
NumberOfIssues: Issues{
Critical: 1,
Major: 2,
Minor: 3,
Info: 4,
},
Coverage: SonarCoverage{
Coverage: 13.7,
BranchCoverage: 42,
LineCoverage: 37.1,
},
}
// test
err := WriteReport(testData, "", writeToFileMock)
// assert
assert.NoError(t, err)
assert.Equal(t, expected, fileContent)
assert.Equal(t, reportFileName, fileName)
}