Skip to content

Commit

Permalink
Cleanup usage of daemon.NewRPC()
Browse files Browse the repository at this point in the history
Signed-off-by: Savolro <[email protected]>
  • Loading branch information
Savolro committed Oct 9, 2024
1 parent b4d09d4 commit 0f45210
Show file tree
Hide file tree
Showing 5 changed files with 148 additions and 287 deletions.
1 change: 0 additions & 1 deletion cmd/daemon/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,6 @@ func main() {
repoAPI,
core.NewOAuth2(httpClientWithRotator, daemon.BaseURL),
Version,
fw,
daemonEvents,
vpnFactory,
&endpointResolver,
Expand Down
133 changes: 20 additions & 113 deletions daemon/jobs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"context"
"errors"
"fmt"
"net/http"
"net/netip"
"testing"
"time"
Expand All @@ -17,18 +16,12 @@ import (
"github.com/NordSecurity/nordvpn-linux/core"
"github.com/NordSecurity/nordvpn-linux/core/mesh"
daemonevents "github.com/NordSecurity/nordvpn-linux/daemon/events"
"github.com/NordSecurity/nordvpn-linux/daemon/response"
"github.com/NordSecurity/nordvpn-linux/daemon/vpn"
"github.com/NordSecurity/nordvpn-linux/events/subs"
"github.com/NordSecurity/nordvpn-linux/internal"
"github.com/NordSecurity/nordvpn-linux/meshnet"
"github.com/NordSecurity/nordvpn-linux/networker"
"github.com/NordSecurity/nordvpn-linux/sharedctx"
"github.com/NordSecurity/nordvpn-linux/test/category"
"github.com/NordSecurity/nordvpn-linux/test/mock"
testcore "github.com/NordSecurity/nordvpn-linux/test/mock/core"
testfirewall "github.com/NordSecurity/nordvpn-linux/test/mock/firewall"
testnetworker "github.com/NordSecurity/nordvpn-linux/test/mock/networker"
testnorduser "github.com/NordSecurity/nordvpn-linux/test/mock/norduser/service"
)

Expand All @@ -52,80 +45,32 @@ func TestStartAutoConnect(t *testing.T) {

tests := []struct {
name string
cfg config.Manager
authChecker auth.Checker
serversAPI core.ServersAPI
netw networker.Networker
expectError bool
setup func(*RPC)
}{
{
name: "not logged-in",
cfg: newMockConfigManager(),
authChecker: &failingLoginChecker{},
serversAPI: &mockServersAPI{},
netw: &testnetworker.Mock{},
setup: func(rpc *RPC) { rpc.ac = failingLoginChecker{} },
expectError: false,
},
{
name: "config load fail",
cfg: &failingConfigManager{},
authChecker: &workingLoginChecker{},
serversAPI: &mockServersAPI{},
netw: testnetworker.Failing{},
setup: func(rpc *RPC) { rpc.cm = failingConfigManager{} },
expectError: true,
},
{
name: "failing servers API",
cfg: newMockConfigManager(),
authChecker: &workingLoginChecker{},
serversAPI: &mockFailingServersAPI{},
netw: &testnetworker.Mock{},
setup: func(rpc *RPC) { rpc.serversAPI = &mockFailingServersAPI{} },
expectError: false,
},
}

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
cm := test.cfg
dm := testNewDataManager()
api := core.NewDefaultAPI(
"1.0.0",
"",
http.DefaultClient,
response.NoopValidator{},
)

netw := &testnetworker.Mock{}

rpc := NewRPC(
internal.Development,
test.authChecker,
cm,
dm,
api,
test.serversAPI,
&testcore.CredentialsAPIMock{},
testNewCDNAPI(),
testNewRepoAPI(),
&mockAuthenticationAPI{},
"1.0.0",
&testfirewall.FirewallMock{},
daemonevents.NewEventsEmpty(),
func(config.Technology) (vpn.VPN, error) {
return &mock.WorkingVPN{}, nil
},
newEndpointResolverMock(netip.MustParseAddr("127.0.0.1")),
netw,
&subs.Subject[string]{},
&mock.DNSGetter{Names: []string{"1.1.1.1"}},
nil,
&mockAnalytics{},
&testnorduser.MockNorduserCombinedService{},
&RegistryMock{},
nil,
sharedctx.New(),
)

rpc := testRPC()
if test.setup != nil {
test.setup(rpc)
}
err := rpc.StartAutoConnect(mockTimeout)
if test.expectError {
assert.Error(t, err)
Expand Down Expand Up @@ -214,31 +159,21 @@ func TestStartAutoMeshnet(t *testing.T) {
cfg config.Manager
authChecker auth.Checker
serversAPI core.ServersAPI
netw networker.Networker
expectError bool
}{
{
name: "not logged-in",
cfg: newMockConfigManager(),
authChecker: &failingLoginChecker{},
serversAPI: &mockServersAPI{},
netw: &testnetworker.Mock{},
expectError: true,
},
{
name: "config load fail",
cfg: &failingConfigManager{},
authChecker: &workingLoginChecker{},
serversAPI: &mockServersAPI{},
netw: &testnetworker.Mock{},
expectError: true,
},
{
name: "failing servers API",
cfg: newMockConfigManager(),
authChecker: &workingLoginChecker{},
serversAPI: &mockFailingServersAPI{},
netw: &testnetworker.Mock{},
expectError: false,
},
{
Expand All @@ -248,54 +183,26 @@ func TestStartAutoMeshnet(t *testing.T) {
cm.c.Mesh = false
return cm
}(),
authChecker: &workingLoginChecker{},
serversAPI: &mockFailingServersAPI{},
netw: &testnetworker.Mock{},
expectError: true,
},
}

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
api := core.NewDefaultAPI(
"1.0.0",
"",
http.DefaultClient,
response.NoopValidator{},
)

rpc := NewRPC(
internal.Development,
test.authChecker,
test.cfg,
testNewDataManager(),
api,
test.serversAPI,
&testcore.CredentialsAPIMock{},
testNewCDNAPI(),
testNewRepoAPI(),
&mockAuthenticationAPI{},
"1.0.0",
&testfirewall.FirewallMock{},
daemonevents.NewEventsEmpty(),
func(config.Technology) (vpn.VPN, error) {
return &mock.WorkingVPN{}, nil
},
newEndpointResolverMock(netip.MustParseAddr("127.0.0.1")),
test.netw,
&subs.Subject[string]{},
&mock.DNSGetter{Names: []string{"1.1.1.1"}},
nil,
&mockAnalytics{},
&testnorduser.MockNorduserCombinedService{},
&RegistryMock{},
nil,
sharedctx.New(),
)
rpc := testRPC()
if test.cfg != nil {
rpc.cm = test.cfg
}
if test.authChecker != nil {
rpc.ac = test.authChecker
}
if test.serversAPI != nil {
rpc.serversAPI = test.serversAPI
}

meshService := meshnet.NewServer(
test.authChecker,
test.cfg,
rpc.ac,
rpc.cm,
&meshRenewChecker{},
&invitationsAPI{},
&meshNetworker{},
Expand Down
2 changes: 0 additions & 2 deletions daemon/rpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/NordSecurity/nordvpn-linux/core/mesh"
"github.com/NordSecurity/nordvpn-linux/daemon/dns"
daemonevents "github.com/NordSecurity/nordvpn-linux/daemon/events"
"github.com/NordSecurity/nordvpn-linux/daemon/firewall"
"github.com/NordSecurity/nordvpn-linux/daemon/pb"
"github.com/NordSecurity/nordvpn-linux/daemon/state"
"github.com/NordSecurity/nordvpn-linux/events"
Expand Down Expand Up @@ -72,7 +71,6 @@ func NewRPC(
repo *RepoAPI,
authentication core.Authentication,
version string,
fw firewall.Service,
events *daemonevents.Events,
factory FactoryFunc,
endpointResolver network.EndpointResolver,
Expand Down
Loading

0 comments on commit 0f45210

Please sign in to comment.