fleet/server/vulnerabilities/msrc/io/fs_test.go
Juan Fernandez 98e4d6e0bc
Feature 7394: Use MSRC parser to generate security bulletin artifacts (#7491)
Generate security artifacts using the MSRC parser.
2022-09-12 15:17:13 -04:00

47 lines
1.2 KiB
Go

package io
import (
"fmt"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
)
func TestFSClient(t *testing.T) {
t.Run("#Bulletins", func(t *testing.T) {
t.Run("directory does not exists", func(t *testing.T) {
sut := NewFSClient("asdf")
_, err := sut.Bulletins()
require.Error(t, err)
})
t.Run("returns a list of file matching the MSRC file prefix", func(t *testing.T) {
path := t.TempDir()
sut := NewFSClient(path)
file1 := filepath.Join(path, "my_lyrics.json")
bulletin1 := filepath.Join(path, fmt.Sprintf("%sWindows_10-2022_10_10.json", mSRCFilePrefix))
bulletin2 := filepath.Join(path, fmt.Sprintf("%sWindows_11-2022_10_10.json", mSRCFilePrefix))
f1, err := os.Create(bulletin1)
require.NoError(t, err)
f1.Close()
f2, err := os.Create(bulletin2)
require.NoError(t, err)
f2.Close()
f3, err := os.Create(file1)
require.NoError(t, err)
f3.Close()
r, err := sut.Bulletins()
require.NoError(t, err)
require.NotContains(t, r, NewSecurityBulletinName(filepath.Base(file1)))
require.Contains(t, r, NewSecurityBulletinName(filepath.Base(bulletin1)))
require.Contains(t, r, NewSecurityBulletinName(filepath.Base(bulletin2)))
})
})
}