mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
45 lines
963 B
Go
45 lines
963 B
Go
package examples_test
|
|
|
|
import (
|
|
"archive/tar"
|
|
"bytes"
|
|
"errors"
|
|
"io"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/examples"
|
|
)
|
|
|
|
func TestTemplate(t *testing.T) {
|
|
t.Parallel()
|
|
list, err := examples.List()
|
|
require.NoError(t, err)
|
|
require.Greater(t, len(list), 0)
|
|
|
|
_, err = examples.Archive(list[0].ID)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestSubdirs(t *testing.T) {
|
|
t.Parallel()
|
|
tarData, err := examples.Archive("docker-image-builds")
|
|
require.NoError(t, err)
|
|
|
|
tarReader := tar.NewReader(bytes.NewReader(tarData))
|
|
entryPaths := make(map[byte][]string)
|
|
for {
|
|
header, err := tarReader.Next()
|
|
if errors.Is(err, io.EOF) {
|
|
break
|
|
}
|
|
require.NoError(t, err)
|
|
|
|
entryPaths[header.Typeflag] = append(entryPaths[header.Typeflag], header.Name)
|
|
}
|
|
|
|
require.Subset(t, entryPaths[tar.TypeDir], []string{"./", "images/"})
|
|
require.Subset(t, entryPaths[tar.TypeReg], []string{"README.md", "main.tf", "images/base.Dockerfile"})
|
|
}
|