github.com/anthonyme00/gomarkdoc@v1.0.0/lang/type_test.go (about)

     1  package lang_test
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  
     7  	"github.com/anthonyme00/gomarkdoc/lang"
     8  	"github.com/anthonyme00/gomarkdoc/logger"
     9  	"github.com/matryer/is"
    10  )
    11  
    12  func TestType_Examples(t *testing.T) {
    13  	is := is.New(t)
    14  
    15  	typ, err := loadType("../testData/lang/function", "Receiver")
    16  	is.NoErr(err)
    17  
    18  	ex := typ.Examples()
    19  	is.Equal(len(ex), 2)
    20  
    21  	is.Equal(ex[0].Name(), "")
    22  	is.Equal(ex[1].Name(), "Sub Test")
    23  }
    24  
    25  func loadType(dir, name string) (*lang.Type, error) {
    26  	buildPkg, err := getBuildPackage(dir)
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  
    31  	log := logger.New(logger.ErrorLevel)
    32  	pkg, err := lang.NewPackageFromBuild(log, buildPkg)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  
    37  	for _, t := range pkg.Types() {
    38  		if t.Name() == name {
    39  			return t, nil
    40  		}
    41  	}
    42  
    43  	return nil, errors.New("type not found")
    44  }