github.com/dolanor/pop@v4.13.0+incompatible/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  
    22  	// Force ID opt
    23  	opts.ForceDefaultID = true
    24  	err = opts.Validate()
    25  	r.NoError(err)
    26  	r.Equal(1, len(opts.Attrs))
    27  	r.Equal("id", opts.Attrs[0].Name.String())
    28  
    29  	// Force default timestamps
    30  	opts.ForceDefaultTimestamps = true
    31  	err = opts.Validate()
    32  	r.NoError(err)
    33  
    34  	r.Equal(3, len(opts.Attrs))
    35  	r.Equal("created_at", opts.Attrs[1].Name.String())
    36  	r.Equal("updated_at", opts.Attrs[2].Name.String())
    37  }