github.com/paganotoni/doco@v1.0.7/internal/config_test.go (about)

     1  package internal
     2  
     3  import (
     4  	_ "embed"
     5  
     6  	"os"
     7  	"testing"
     8  )
     9  
    10  var (
    11  	//go:embed testdata/complete_meta.md
    12  	completeConfig string
    13  
    14  	//go:embed testdata/empty_meta.md
    15  	emptyConfig string
    16  
    17  	//go:embed testdata/wrong_types_meta.md
    18  	wrongMeta string
    19  )
    20  
    21  func TestReadConfig(t *testing.T) {
    22  	t.Run("read complete meta", func(t *testing.T) {
    23  		owd, _ := os.Getwd()
    24  		defer os.Chdir(owd)
    25  
    26  		tmpdir := t.TempDir()
    27  		os.Chdir(tmpdir)
    28  
    29  		f, err := os.Create("_meta.md")
    30  		if err != nil {
    31  			t.Fatal(err)
    32  		}
    33  
    34  		_, err = f.WriteString(completeConfig)
    35  		if err != nil {
    36  			t.Fatal(err)
    37  		}
    38  
    39  		err = f.Close()
    40  		if err != nil {
    41  			t.Fatal(err)
    42  		}
    43  
    44  		_, err = readConfig(tmpdir)
    45  		if err != nil {
    46  			t.Fatal(err)
    47  		}
    48  
    49  	})
    50  
    51  	t.Run("read incomplete meta", func(t *testing.T) {
    52  		owd, _ := os.Getwd()
    53  		defer os.Chdir(owd)
    54  
    55  		tmpdir := t.TempDir()
    56  		os.Chdir(tmpdir)
    57  
    58  		f, err := os.Create("_meta.md")
    59  		if err != nil {
    60  			t.Fatal(err)
    61  		}
    62  
    63  		_, err = f.WriteString(wrongMeta)
    64  		if err != nil {
    65  			t.Fatal(err)
    66  		}
    67  
    68  		err = f.Close()
    69  		if err != nil {
    70  			t.Fatal(err)
    71  		}
    72  
    73  		_, err = readConfig(tmpdir)
    74  		if err != nil {
    75  			t.Fatal(err)
    76  		}
    77  	})
    78  }