diff options
| author | ewy <ewy0@protonmail.com> | 2026-04-22 20:44:06 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-04-22 20:44:06 +0200 |
| commit | 086a0cc0eb75c0c3a15cf6a715427df1e2d589a2 (patch) | |
| tree | 0bcc881b202f94a7ea39f94f13aea89ca2046312 /describe/describe_test.go | |
| parent | c6a362a039b1662dfc0badeb8badc4458e446787 (diff) | |
slowly working on that test coverage
Diffstat (limited to 'describe/describe_test.go')
| -rw-r--r-- | describe/describe_test.go | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/describe/describe_test.go b/describe/describe_test.go new file mode 100644 index 0000000..283be64 --- /dev/null +++ b/describe/describe_test.go @@ -0,0 +1,88 @@ +//go:build test + +package describe + +import ( + "github.com/stretchr/testify/assert" + "os" + "path/filepath" + "pik/runner" + "testing" +) + +type key struct { + *runner.Stub +} + +func Key() *key { + return &key{ + Stub: &runner.Stub{}, + } +} + +func TestDescribe(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + err := os.WriteFile(f, []byte("# this is a comment"), 0666) + assert.NoError(t, err) + result, err := Describe(Key(), f) + assert.NoError(t, err) + assert.Contains(t, result, "this is a comment") +} + +func TestDescribe_Slashes(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + err := os.WriteFile(f, []byte(" // this is a comment"), 0666) + assert.NoError(t, err) + result, err := Describe(Key(), f) + assert.NoError(t, err) + assert.Contains(t, result, "this is a comment") +} + +func TestDescribe_Cache(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + k := Key() + err := os.WriteFile(f, []byte(" // this is a comment"), 0666) + assert.NoError(t, err) + result, err := Describe(k, f) + assert.NoError(t, err) + assert.Contains(t, result, "this is a comment") + err = os.Remove(f) + if err != nil { + assert.NoError(t, err) + } + cached, err := Describe(k, f) + assert.NoError(t, err) + assert.Equal(t, result, cached) + +} + +func TestDescribe_NoDescription(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + err := os.WriteFile(f, []byte("1230987324091823740918237409283"), 0666) + assert.NoError(t, err) + result, err := Describe(Key(), f) + assert.NoError(t, err) + assert.Empty(t, result) +} + +func TestDescribe_Shebang_NoDescription(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + err := os.WriteFile(f, []byte("#!/usr/bin/env bash\nkjausdhuahsdf"), 0666) + assert.NoError(t, err) + result, err := Describe(Key(), f) + assert.Empty(t, result) + assert.NoError(t, err) +} + +func TestDescribe_Error(t *testing.T) { + dir := t.TempDir() + f := filepath.Join(dir, "file") + result, err := Describe(Key(), f) + assert.Empty(t, result) + assert.Error(t, err) +} |
