1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/integration/integration_sonar_test.go
Sven Merk a1988f6808
feat(whitesourceExecuteScan): GitHub issue creation + SARIF (#3535)
* Add GH issue creation + SARIF

* Code cleanup

* Fix fmt, add debug

* Code enhancements

* Fix

* Added debug info

* Rework UA log scan

* Fix code

* read UA version

* Fix nil reference

* Extraction

* Credentials

* Issue creation

* Error handling

* Fix issue creation

* query escape

* Query escape 2

* Revert

* Test avoid update

* HTTP client

* Add support for custom TLS certs

* Fix code

* Fix code 2

* Fix code 3

* Disable cert check

* Fix auth

* Remove implicit trust

* Skip verification

* Fix

* Fix client

* Fix HTTP auth

* Fix trusted certs

* Trim version

* Code

* Add token

* Added token handling to client

* Fix token

* Cleanup

* Fix token

* Token rework

* Fix code

* Kick out oauth client

* Kick out oauth client

* Transport wrapping

* Token

* Simplification

* Refactor

* Variation

* Check

* Fix

* Debug

* Switch client

* Variation

* Debug

* Switch to cert check

* Add debug

* Parse self

* Cleanup

* Update resources/metadata/whitesourceExecuteScan.yaml

* Add debug

* Expose subjects

* Patch

* Debug

* Debug2

* Debug3

* Fix logging response body

* Cleanup

* Cleanup

* Fix request body logging

* Cleanup import

* Fix import cycle

* Cleanup

* Fix fmt

* Fix NopCloser reference

* Regenerate

* Reintroduce

* Fix test

* Fix tests

* Correction

* Fix error

* Code fix

* Fix tests

* Add tests

* Fix code climate issues

* Code climate

* Code climate again

* Code climate again

* Fix fmt

* Fix fmt 2

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2022-02-23 09:30:19 +01:00

102 lines
2.9 KiB
Go

//go:build integration
// +build integration
// can be execute with go test -tags=integration ./integration/...
package main
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
piperhttp "github.com/SAP/jenkins-library/pkg/http"
"github.com/SAP/jenkins-library/pkg/sonar"
)
func TestSonarIssueSearch(t *testing.T) {
t.Parallel()
// init
token := os.Getenv("PIPER_INTEGRATION_SONAR_TOKEN")
require.NotEmpty(t, token, "SonarQube API Token is missing")
host := os.Getenv("PIPER_INTEGRATION_SONAR_HOST")
if len(host) == 0 {
host = "https://sonarcloud.io"
}
organization := os.Getenv("PIPER_INTEGRATION_SONAR_ORGANIZATION")
if len(organization) == 0 {
organization = "sap-1"
}
componentKey := os.Getenv("PIPER_INTEGRATION_SONAR_PROJECT")
if len(componentKey) == 0 {
componentKey = "SAP_jenkins-library"
}
options := &sonar.IssuesSearchOption{
ComponentKeys: componentKey,
Severities: "INFO",
Resolved: "false",
Ps: "1",
Organization: organization,
}
issueService := sonar.NewIssuesService(host, token, componentKey, organization, "", "", &piperhttp.Client{})
// test
result, _, err := issueService.SearchIssues(options)
// assert
assert.NoError(t, err)
assert.NotEmpty(t, result.Components)
//FIXME: include once implememnted
// assert.NotEmpty(t, result.Organizations)
}
func TestSonarMeasuresComponentSearch(t *testing.T) {
t.Parallel()
// init
token := os.Getenv("PIPER_INTEGRATION_SONAR_TOKEN")
require.NotEmpty(t, token, "SonarQube API Token is missing")
host := os.Getenv("PIPER_INTEGRATION_SONAR_HOST")
if len(host) == 0 {
host = "https://sonarcloud.io"
}
organization := os.Getenv("PIPER_INTEGRATION_SONAR_ORGANIZATION")
if len(organization) == 0 {
organization = "sap-1"
}
componentKey := os.Getenv("PIPER_INTEGRATION_SONAR_PROJECT")
if len(componentKey) == 0 {
componentKey = "SAP_jenkins-library"
}
componentService := sonar.NewMeasuresComponentService(host, token, componentKey, organization, "", "", &piperhttp.Client{})
// test
_, err := componentService.GetCoverage()
// assert
assert.NoError(t, err)
}
func TestSonarGetLinesOfCode(t *testing.T) {
t.Parallel()
// init
token := os.Getenv("PIPER_INTEGRATION_SONAR_TOKEN")
require.NotEmpty(t, token, "SonarQube API Token is missing")
host := os.Getenv("PIPER_INTEGRATION_SONAR_HOST")
if len(host) == 0 {
host = "https://sonarcloud.io"
}
organization := os.Getenv("PIPER_INTEGRATION_SONAR_ORGANIZATION")
if len(organization) == 0 {
organization = "sap-1"
}
componentKey := os.Getenv("PIPER_INTEGRATION_SONAR_PROJECT")
if len(componentKey) == 0 {
componentKey = "SAP_jenkins-library"
}
componentService := sonar.NewMeasuresComponentService(host, token, componentKey, organization, "", "", &piperhttp.Client{})
// test
_, err := componentService.GetLinesOfCode()
// assert
assert.NoError(t, err)
}