github.com/xzzpig/headscale-manager@v1.3.3/service/service_test.go (about)

     1  package service_test
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"os"
     7  	"testing"
     8  
     9  	"github.com/xzzpig/headscale-manager/api/headscale"
    10  	"github.com/xzzpig/headscale-manager/config"
    11  	"github.com/xzzpig/headscale-manager/db"
    12  	"github.com/xzzpig/headscale-manager/graph/model"
    13  	mycontext "github.com/xzzpig/headscale-manager/server/context"
    14  	"github.com/xzzpig/headscale-manager/service"
    15  	"github.com/xzzpig/headscale-manager/service/loader"
    16  	"github.com/xzzpig/headscale-manager/util"
    17  )
    18  
    19  func TestMain(m *testing.M) {
    20  	os.Chdir("../")
    21  	config.SetupEnv()
    22  	db.Connect()
    23  	headscale.SetupHeadscaleClient()
    24  
    25  	m.Run()
    26  }
    27  
    28  func TestProjectSync(t *testing.T) {
    29  	svc := service.NewProjectService(context.TODO())
    30  	result, err := svc.SyncProjectRoute(nil)
    31  	if err != nil {
    32  		t.Error(err)
    33  	}
    34  	str, err := json.MarshalIndent(result, "", "  ")
    35  	if err != nil {
    36  		t.Error(err)
    37  	}
    38  	t.Log(string(str))
    39  }
    40  
    41  func TestAll(t *testing.T) {
    42  	ctx := context.TODO()
    43  	commonService := service.NewCommonService[model.Project](ctx, "project")
    44  
    45  	projects, err := commonService.All()
    46  	if err != nil {
    47  		t.Error(err)
    48  	}
    49  	str, err := json.MarshalIndent(projects, "", "  ")
    50  	if err != nil {
    51  		t.Error(err)
    52  	}
    53  	t.Log(string(str))
    54  }
    55  
    56  func TestLoader(t *testing.T) {
    57  	l := loader.NewLoaders()
    58  	ctx := context.WithValue(context.Background(), mycontext.LOADERS_KEY, l)
    59  	commonService := service.NewCommonService[model.Project](ctx, "project")
    60  
    61  	project, err := commonService.ByIDWithLoader(util.Ptr("64267b0e723fd8cdf1199b1a"))
    62  	if err != nil {
    63  		t.Error(err)
    64  	}
    65  	str, err := json.MarshalIndent(project, "", "  ")
    66  	if err != nil {
    67  		t.Error(err)
    68  	}
    69  	t.Log(string(str))
    70  
    71  	project, err = commonService.ByIDWithLoader(util.Ptr("64267b0e723fd8cdf1199b1b"))
    72  	if err != nil {
    73  		t.Error(err)
    74  	}
    75  	str, err = json.MarshalIndent(project, "", "  ")
    76  	if err != nil {
    77  		t.Error(err)
    78  	}
    79  	t.Log(string(str))
    80  
    81  	project, err = commonService.ByIDWithLoader(util.Ptr("64267b0e723fd8cdf1199b1a"))
    82  	if err != nil {
    83  		t.Error(err)
    84  	}
    85  	str, err = json.MarshalIndent(project, "", "  ")
    86  	if err != nil {
    87  		t.Error(err)
    88  	}
    89  	t.Log(string(str))
    90  
    91  	l = loader.NewLoaders()
    92  	ctx = context.WithValue(context.Background(), mycontext.LOADERS_KEY, l)
    93  	commonService = service.NewCommonService[model.Project](ctx, "project")
    94  
    95  	project, err = commonService.ByIDWithLoader(util.Ptr("64267b0e723fd8cdf1199b1a"))
    96  	if err != nil {
    97  		t.Error(err)
    98  	}
    99  	str, err = json.MarshalIndent(project, "", "  ")
   100  	if err != nil {
   101  		t.Error(err)
   102  	}
   103  	t.Log(string(str))
   104  
   105  }
   106  
   107  func TestGenerateACL(t *testing.T) {
   108  	svc := service.NewHeadscaleService(context.Background())
   109  	acl, err := svc.GenerateACL()
   110  	if err != nil {
   111  		t.Error(err)
   112  	}
   113  	str, err := json.MarshalIndent(acl, "", "  ")
   114  	if err != nil {
   115  		t.Error(err)
   116  	}
   117  	t.Log(string(str))
   118  }
   119  
   120  func TestTriggerUpdate(t *testing.T) {
   121  	svc := service.NewHeadscaleService(context.Background())
   122  	err := svc.TriggerUpdate()
   123  	if err != nil {
   124  		t.Error(err)
   125  	}
   126  }