Skip to content

Commit

Permalink
Merge pull request #10 from fabi200123/unit-tests
Browse files Browse the repository at this point in the history
Adding more unit-tests
  • Loading branch information
gabriel-samfira authored Jun 17, 2024
2 parents a65fd40 + 2fed73b commit 7119081
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 8 deletions.
34 changes: 26 additions & 8 deletions internal/spec/spec_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func TestJsonSchemaValidation(t *testing.T) {
}{
{
name: "valid schema",
schema: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0", "ssh_key_name": "ssh_key_name"}`),
schema: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0", "ssh_key_name": "ssh_key_name", "disable_updates": true, "enable_boot_debug": true, "extra_packages": ["package1", "package2"], "runner_install_template": "runner_install_template", "extra_context": {"key": "value"}, "pre_install_scripts":{"script1": "script1", "script2": "script2"}}`),
errString: "",
},
{
Expand Down Expand Up @@ -70,7 +70,7 @@ func TestExtraSpecsFromBootstrapData(t *testing.T) {
{
name: "valid bootstrap data",
bootstrap: params.BootstrapInstance{
ExtraSpecs: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0"}`),
ExtraSpecs: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0", "ssh_key_name": "ssh_key_name", "disable_updates": true, "enable_boot_debug": true, "extra_packages": ["package1", "package2"], "runner_install_template": "runner_install_template", "extra_context": {"key": "value"}, "pre_install_scripts":{"script1": "script1", "script2": "script2"}}`),
},
errString: "",
},
Expand Down Expand Up @@ -115,7 +115,7 @@ func TestGetRunnerSpecFromBootstrapParams(t *testing.T) {
}

data := params.BootstrapInstance{
ExtraSpecs: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0"}`),
ExtraSpecs: json.RawMessage(`{"subnet_id": "subnet-0a0a0a0a0a0a0a0a0", "ssh_key_name": "ssh_key_name", "disable_updates": true, "enable_boot_debug": true, "extra_packages": ["package1", "package2"], "runner_install_template": "runner_install_template", "extra_context": {"key": "value"}, "pre_install_scripts":{"script1": "script1", "script2": "script2"}}`),
}

config := &config.Config{
Expand All @@ -129,10 +129,14 @@ func TestGetRunnerSpecFromBootstrapParams(t *testing.T) {
}
expectedRunnerSpec := &RunnerSpec{
Region: "region",
DisableUpdates: true,
ExtraPackages: []string{"package1", "package2"},
EnableBootDebug: true,
SubnetID: "subnet-0a0a0a0a0a0a0a0a0",
Tools: Mocktools,
ControllerID: "controller_id",
BootstrapParams: data,
SSHKeyName: aws.String("ssh_key_name"),
}

runnerSpec, err := GetRunnerSpecFromBootstrapParams(config, data, "controller_id")
Expand Down Expand Up @@ -163,7 +167,16 @@ func TestRunnerSpecValidate(t *testing.T) {
{
name: "valid runner spec",
spec: &RunnerSpec{
Region: "region",
Region: "region",
DisableUpdates: true,
ExtraPackages: []string{"package1", "package2"},
EnableBootDebug: true,
Tools: params.RunnerApplicationDownload{
OS: aws.String("linux"),
Architecture: aws.String("amd64"),
DownloadURL: aws.String("MockURL"),
Filename: aws.String("garm-runner"),
},
SubnetID: "subnet_id",
ControllerID: "controller_id",
BootstrapParams: params.BootstrapInstance{
Expand Down Expand Up @@ -207,12 +220,17 @@ func TestMergeExtraSpecs(t *testing.T) {
SubnetID: "subnet_id",
},
extra: &extraSpecs{
SubnetID: aws.String("subnet-0a0a0a0a0a0a0a0a0"),
SSHKeyName: aws.String("ssh_key_name"),
SubnetID: aws.String("subnet-0a0a0a0a0a0a0a0a0"),
SSHKeyName: aws.String("ssh_key_name"),
DisableUpdates: aws.Bool(true),
EnableBootDebug: aws.Bool(true),
ExtraPackages: []string{"package1", "package2"},
},
expected: &RunnerSpec{
SubnetID: "subnet-0a0a0a0a0a0a0a0a0",
SSHKeyName: aws.String("ssh_key_name"),
SubnetID: "subnet-0a0a0a0a0a0a0a0a0",
SSHKeyName: aws.String("ssh_key_name"),
DisableUpdates: true,
EnableBootDebug: true,
},
},
}
Expand Down
59 changes: 59 additions & 0 deletions provider/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package provider
import (
"context"
"encoding/json"
"fmt"
"testing"

"github.com/aws/aws-sdk-go-v2/aws"
Expand Down Expand Up @@ -95,6 +96,64 @@ func TestCreateInstance(t *testing.T) {
assert.Equal(t, expectedInstance, result)
}

func TestCreateInstanceError(t *testing.T) {
ctx := context.Background()
instanceID := "i-1234567890abcdef0"
spec.DefaultToolFetch = func(osType params.OSType, osArch params.OSArch, tools []params.RunnerApplicationDownload) (params.RunnerApplicationDownload, error) {
return params.RunnerApplicationDownload{
OS: aws.String("linux"),
Architecture: aws.String("amd64"),
DownloadURL: aws.String("MockURL"),
Filename: aws.String("garm-runner"),
}, nil
}
bootstrapParams := params.BootstrapInstance{
Name: "garm-instance",
Flavor: "t2.micro",
Image: "ami-12345678",
Tools: []params.RunnerApplicationDownload{
{
OS: aws.String("linux"),
Architecture: aws.String("amd64"),
DownloadURL: aws.String("MockURL"),
Filename: aws.String("garm-runner"),
},
},
OSType: params.Linux,
OSArch: params.Amd64,
PoolID: "my-pool",
ExtraSpecs: json.RawMessage(`{}`),
}
expectedInstance := params.ProviderInstance{}
provider := &AwsProvider{
controllerID: "controllerID",
awsCli: &client.AwsCli{},
}
config := &config.Config{
Region: "us-east-1",
SubnetID: "subnet-123456",
Credentials: config.Credentials{
AccessKeyID: "accessKey",
SecretAccessKey: "secretKey",
SessionToken: "token",
},
}
mockComputeClient := new(client.MockComputeClient)
provider.awsCli.SetConfig(config)
provider.awsCli.SetClient(mockComputeClient)

mockComputeClient.On("RunInstances", ctx, mock.Anything, mock.Anything).Return(&ec2.RunInstancesOutput{
Instances: []types.Instance{
{
InstanceId: aws.String(instanceID),
},
},
}, fmt.Errorf("error creating instance"))
result, err := provider.CreateInstance(ctx, bootstrapParams)
assert.ErrorContains(t, err, "failed to create instance")
assert.Equal(t, expectedInstance, result)
}

func TestDeleteInstanceWithID(t *testing.T) {
ctx := context.Background()
instanceID := "i-1234567890abcdef0"
Expand Down

0 comments on commit 7119081

Please sign in to comment.