mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-16 02:03:01 +03:00
62 lines
1.9 KiB
Go
62 lines
1.9 KiB
Go
package bootstrap
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/pocket-id/pocket-id/backend/internal/utils"
|
|
)
|
|
|
|
func TestGetBuiltInImageData(t *testing.T) {
|
|
// Get the built-in image data map
|
|
builtInImages := getBuiltInImageHashes()
|
|
|
|
// Read the actual images directory from disk
|
|
imagesDir := filepath.Join("..", "..", "resources", "images")
|
|
actualFiles, err := os.ReadDir(imagesDir)
|
|
require.NoError(t, err, "Failed to read images directory")
|
|
|
|
// Create a map of actual files for comparison
|
|
actualFilesMap := make(map[string]struct{})
|
|
|
|
// Validate each actual file exists in the built-in data with correct hash
|
|
for _, file := range actualFiles {
|
|
fileName := file.Name()
|
|
if file.IsDir() || strings.HasPrefix(fileName, ".") {
|
|
continue
|
|
}
|
|
|
|
actualFilesMap[fileName] = struct{}{}
|
|
|
|
// Check if the file exists in the built-in data
|
|
builtInHash, exists := builtInImages[fileName]
|
|
assert.True(t, exists, "File %s exists in images directory but not in getBuiltInImageData map", fileName)
|
|
|
|
if !exists {
|
|
continue
|
|
}
|
|
|
|
filePath := filepath.Join(imagesDir, fileName)
|
|
|
|
// Validate SHA256 hash
|
|
actualHash, err := utils.CreateSha256FileHash(filePath)
|
|
require.NoError(t, err, "Failed to compute hash for %s", fileName)
|
|
assert.Equal(t, actualHash, builtInHash, "SHA256 hash mismatch for file %s", fileName)
|
|
}
|
|
|
|
// Ensure the built-in data doesn't have extra files that don't exist in the directory
|
|
for fileName := range builtInImages {
|
|
_, exists := actualFilesMap[fileName]
|
|
assert.True(t, exists, "File %s exists in getBuiltInImageData map but not in images directory", fileName)
|
|
}
|
|
|
|
// Ensure we have at least some files (sanity check)
|
|
assert.NotEmpty(t, actualFilesMap, "Images directory should contain at least one file")
|
|
assert.Len(t, actualFilesMap, len(builtInImages), "Number of files in directory should match number in built-in data map")
|
|
}
|