goyave.dev/goyave/v5@v5.0.0-rc9.0.20240517145003-d3f977d0b9f3/component_test.go (about)

     1  package goyave
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  	"goyave.dev/goyave/v5/config"
     9  
    10  	_ "goyave.dev/goyave/v5/database/dialect/sqlite"
    11  )
    12  
    13  func TestComponent(t *testing.T) {
    14  	cfg := config.LoadDefault()
    15  	cfg.Set("database.connection", "sqlite3")
    16  	cfg.Set("database.name", "test_component.db")
    17  	cfg.Set("database.options", "mode=memory")
    18  	server, err := New(Options{Config: cfg})
    19  	require.NoError(t, err)
    20  	defer func() {
    21  		assert.NoError(t, server.CloseDB())
    22  	}()
    23  	service := &DummyService{}
    24  	server.RegisterService(service)
    25  
    26  	c := &Component{}
    27  	c.Init(server)
    28  
    29  	s, ok := c.LookupService("dummy")
    30  	assert.Equal(t, service, s)
    31  	assert.True(t, ok)
    32  
    33  	s = c.Service("dummy")
    34  	assert.Equal(t, service, s)
    35  
    36  	s, ok = c.LookupService("not_a_service")
    37  	assert.Nil(t, s)
    38  	assert.False(t, ok)
    39  
    40  	assert.Panics(t, func() {
    41  		server.Service("not_a_service")
    42  	})
    43  
    44  	assert.Equal(t, server.Logger, c.Logger())
    45  	assert.Equal(t, server.config, c.Config())
    46  	assert.Equal(t, server.Lang, c.Lang())
    47  	assert.Equal(t, server.db, c.DB())
    48  }