mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-31 13:07:46 +09:00 
			
		
		
		
	This is step one in detaching the Database layer from Headscale (h). The ultimate goal is to have all function that does database operations in its own package, and keep the business logic and writing separate. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package hscontrol
 | |
| 
 | |
| import (
 | |
| 	"net/netip"
 | |
| 	"os"
 | |
| 	"testing"
 | |
| 
 | |
| 	"gopkg.in/check.v1"
 | |
| )
 | |
| 
 | |
| func Test(t *testing.T) {
 | |
| 	check.TestingT(t)
 | |
| }
 | |
| 
 | |
| var _ = check.Suite(&Suite{})
 | |
| 
 | |
| type Suite struct{}
 | |
| 
 | |
| var (
 | |
| 	tmpDir string
 | |
| 	app    Headscale
 | |
| )
 | |
| 
 | |
| func (s *Suite) SetUpTest(c *check.C) {
 | |
| 	s.ResetDB(c)
 | |
| }
 | |
| 
 | |
| func (s *Suite) TearDownTest(c *check.C) {
 | |
| 	os.RemoveAll(tmpDir)
 | |
| }
 | |
| 
 | |
| func (s *Suite) ResetDB(c *check.C) {
 | |
| 	if len(tmpDir) != 0 {
 | |
| 		os.RemoveAll(tmpDir)
 | |
| 	}
 | |
| 	var err error
 | |
| 	tmpDir, err = os.MkdirTemp("", "autoygg-client-test")
 | |
| 	if err != nil {
 | |
| 		c.Fatal(err)
 | |
| 	}
 | |
| 	cfg := Config{
 | |
| 		IPPrefixes: []netip.Prefix{
 | |
| 			netip.MustParsePrefix("10.27.0.0/23"),
 | |
| 		},
 | |
| 		OIDC: OIDCConfig{
 | |
| 			StripEmaildomain: false,
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	// TODO(kradalby): make this use NewHeadscale properly so it doesnt drift
 | |
| 	app = Headscale{
 | |
| 		cfg:      &cfg,
 | |
| 		dbType:   "sqlite3",
 | |
| 		dbString: tmpDir + "/headscale_test.db",
 | |
| 
 | |
| 		stateUpdateChan:       make(chan struct{}),
 | |
| 		cancelStateUpdateChan: make(chan struct{}),
 | |
| 	}
 | |
| 
 | |
| 	go app.watchStateChannel()
 | |
| 
 | |
| 	db, err := NewHeadscaleDatabase(
 | |
| 		app.dbType,
 | |
| 		app.dbString,
 | |
| 		cfg.OIDC.StripEmaildomain,
 | |
| 		false,
 | |
| 		app.stateUpdateChan,
 | |
| 		cfg.IPPrefixes,
 | |
| 		"",
 | |
| 	)
 | |
| 	if err != nil {
 | |
| 		c.Fatal(err)
 | |
| 	}
 | |
| 	app.db = db
 | |
| }
 |