github.com/Accefy/pop@v0.0.0-20230428174248-e9f677eab5b9/genny/model/options_test.go (about)

     1  package model
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func Test_Options_Validate(t *testing.T) {
    10  	r := require.New(t)
    11  
    12  	opts := &Options{}
    13  	err := opts.Validate()
    14  	r.Error(err)
    15  
    16  	opts.Name = "widget"
    17  
    18  	err = opts.Validate()
    19  	r.NoError(err)
    20  	r.Equal(0, len(opts.Attrs))
    21  	r.Equal("models", opts.Path)
    22  	r.Equal("models", opts.Package)
    23  	r.Equal("models", opts.TestPackage)
    24  	r.Equal("json", opts.Encoding)
    25  
    26  	// Force ID opt
    27  	opts.ForceDefaultID = true
    28  	err = opts.Validate()
    29  	r.NoError(err)
    30  	r.Equal(1, len(opts.Attrs))
    31  	r.Equal("id", opts.Attrs[0].Name.String())
    32  
    33  	// Force default timestamps
    34  	opts.ForceDefaultTimestamps = true
    35  	err = opts.Validate()
    36  	r.NoError(err)
    37  
    38  	r.Equal(3, len(opts.Attrs))
    39  	r.Equal("created_at", opts.Attrs[1].Name.String())
    40  	r.Equal("updated_at", opts.Attrs[2].Name.String())
    41  }