github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/sonar/sonar_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package sonar
     5  
     6  import (
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestReadTaskReport(t *testing.T) {
    14  	t.Run("default", func(t *testing.T) {
    15  		// test
    16  		result, err := ReadTaskReport("./testData/valid")
    17  		// assert
    18  		assert.Equal(t, "piper-test", result.ProjectKey)
    19  		assert.Equal(t, "AXERR2JBbm9IiM5TEST", result.TaskID)
    20  		assert.Equal(t, "https://sonarcloud.io/api/ce/task?id=AXERR2JBbm9IiMTEST", result.TaskURL)
    21  		assert.Equal(t, "https://sonarcloud.io/dashboard/index/piper-test", result.DashboardURL)
    22  		assert.Equal(t, "https://sonarcloud.io", result.ServerURL)
    23  		assert.Equal(t, "8.0.0.12345", result.ServerVersion)
    24  		assert.NoError(t, err)
    25  	})
    26  
    27  	t.Run("missing file", func(t *testing.T) {
    28  		// test
    29  		result, err := ReadTaskReport("./testData/missing")
    30  		// assert
    31  		assert.Empty(t, result.ProjectKey)
    32  		assert.True(t,
    33  			(filepath.FromSlash("open testData/missing/.scannerwork/report-task.txt: The system cannot find the path specified.") == err.Error()) ||
    34  				(filepath.FromSlash("open testData/missing/.scannerwork/report-task.txt: no such file or directory") == err.Error()))
    35  	})
    36  
    37  	t.Run("invalid file", func(t *testing.T) {
    38  		// test
    39  		result, err := ReadTaskReport("./testData/invalid")
    40  		// assert
    41  		assert.Empty(t, result.ProjectKey)
    42  		assert.EqualError(t, err, filepath.FromSlash("decode testData/invalid/.scannerwork/report-task.txt: missing required key projectKey"))
    43  	})
    44  }