mirror of
https://github.com/Infisical/infisical.git
synced 2026-01-09 15:38:03 -05:00
123 lines
3.5 KiB
Go
123 lines
3.5 KiB
Go
// MIT License
|
|
|
|
// Copyright (c) 2019 Zachary Rice
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
|
|
// The above copyright notice and this permission notice shall be included in all
|
|
// copies or substantial portions of the Software.
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
// SOFTWARE.
|
|
|
|
package report
|
|
|
|
const configPath = "../testdata/config/"
|
|
|
|
// func TestWriteSarif(t *testing.T) {
|
|
// tests := []struct {
|
|
// findings []Finding
|
|
// testReportName string
|
|
// expected string
|
|
// wantEmpty bool
|
|
// cfgName string
|
|
// }{
|
|
// {
|
|
// cfgName: "simple",
|
|
// testReportName: "simple",
|
|
// expected: filepath.Join(expectPath, "report", "sarif_simple.sarif"),
|
|
// findings: []Finding{
|
|
// {
|
|
|
|
// Description: "A test rule",
|
|
// RuleID: "test-rule",
|
|
// Match: "line containing secret",
|
|
// Secret: "a secret",
|
|
// StartLine: 1,
|
|
// EndLine: 2,
|
|
// StartColumn: 1,
|
|
// EndColumn: 2,
|
|
// Message: "opps",
|
|
// File: "auth.py",
|
|
// Commit: "0000000000000000",
|
|
// Author: "John Doe",
|
|
// Email: "johndoe@gmail.com",
|
|
// Date: "10-19-2003",
|
|
// Tags: []string{},
|
|
// },
|
|
// }},
|
|
// }
|
|
|
|
// for _, test := range tests {
|
|
// // create tmp file using os.TempDir()
|
|
// tmpfile, err := os.Create(filepath.Join(tmpPath, test.testReportName+".json"))
|
|
// if err != nil {
|
|
// os.Remove(tmpfile.Name())
|
|
// t.Error(err)
|
|
// }
|
|
// viper.Reset()
|
|
// viper.AddConfigPath(configPath)
|
|
// viper.SetConfigName(test.cfgName)
|
|
// viper.SetConfigType("toml")
|
|
// err = viper.ReadInConfig()
|
|
// if err != nil {
|
|
// t.Error(err)
|
|
// }
|
|
|
|
// var vc config.ViperConfig
|
|
// err = viper.Unmarshal(&vc)
|
|
// if err != nil {
|
|
// t.Error(err)
|
|
// }
|
|
|
|
// cfg, err := vc.Translate()
|
|
// if err != nil {
|
|
// t.Error(err)
|
|
// }
|
|
// err = writeSarif(cfg, test.findings, tmpfile)
|
|
// fmt.Println(cfg)
|
|
// if err != nil {
|
|
// os.Remove(tmpfile.Name())
|
|
// t.Error(err)
|
|
// }
|
|
// got, err := os.ReadFile(tmpfile.Name())
|
|
// if err != nil {
|
|
// os.Remove(tmpfile.Name())
|
|
// t.Error(err)
|
|
// }
|
|
// if test.wantEmpty {
|
|
// if len(got) > 0 {
|
|
// os.Remove(tmpfile.Name())
|
|
// t.Errorf("Expected empty file, got %s", got)
|
|
// }
|
|
// os.Remove(tmpfile.Name())
|
|
// continue
|
|
// }
|
|
// want, err := os.ReadFile(test.expected)
|
|
// if err != nil {
|
|
// os.Remove(tmpfile.Name())
|
|
// t.Error(err)
|
|
// }
|
|
|
|
// if string(got) != string(want) {
|
|
// err = os.WriteFile(strings.Replace(test.expected, ".sarif", ".got.sarif", 1), got, 0644)
|
|
// if err != nil {
|
|
// t.Error(err)
|
|
// }
|
|
// t.Errorf("got %s, want %s", string(got), string(want))
|
|
// }
|
|
|
|
// os.Remove(tmpfile.Name())
|
|
// }
|
|
// }
|