Skip to content

Commit

Permalink
Merge pull request #10 from y0rune/add-tests
Browse files Browse the repository at this point in the history
Added tests
  • Loading branch information
y0rune authored Oct 31, 2022
2 parents 9abc0fb + 5f33d05 commit 517c552
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,18 @@ Rotation w52-25.12-1.1 has been created for schedule YEAR_2023.
### Schedule settings in OpsGenie
![alt text](https://github.com/y0rune/opsgenie-scheduler-creator/blob/main/screenshots/OpsGenieSchedule.png)
![alt text](https://github.com/y0rune/opsgenie-scheduler-creator/blob/main/screenshots/OpsGenieUpdateRotation.png)
## Test

### Run all tests

```bash
export OPSGENIE_API_KEY="XXXXXXXXXXXXXXX"
go test -v
```

Alternative:

```bash
go test --apiKey XXXXXXXXXXXXXXXXXXXXXX -v
```

107 changes: 107 additions & 0 deletions main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package main

import (
"flag"
"fmt"
"os/exec"
"testing"

"github.com/opsgenie/opsgenie-go-sdk-v2/schedule"
)

var scheduleID string
var scheduleClient *schedule.Client
var scheduleTest schedule.CreateResult
var apiKey *string = flag.String("apiKey", "", "# ApiKey for use in that script.\n# You can use the export OPSGENIE_API_KEY=\"XXXXXXXXXXXXXXX\"")

const scheduleName string = "Testing_Schedule"
const scheduleTimezone string = "Europe/Warsaw"
const scheduleTeam string = "TestTeam"
const scheduleYear int = 2022
const scheduleEnabledFlag bool = false
const expetedNameOfRotation string = "w21-23.5-30.5"

func TestCreateApiClient(t *testing.T) {
flag.Parse()
scheduleClient = createApi(*apiKey)
}

func TestCreateSchedule(t *testing.T) {
scheduleTest = scheduleCreator(*scheduleClient, scheduleName,
scheduleTimezone, scheduleTeam,
scheduleEnabledFlag)

if scheduleTest.Name != scheduleName {
t.Fatalf("Schedule has been NOT created correctly.")
}
}

func TestCreateRestriction(t *testing.T) {
restrictionCreator(*scheduleClient, scheduleTest.Id, scheduleYear)

listRotation := getListRotation(*scheduleClient, scheduleTest.Id)
if (listRotation.Rotations[20].Name) != expetedNameOfRotation {
t.Fatalf("Schedule has been NOT created correctly.")
}
}

func TestDeleteSchedule(t *testing.T) {
deleteSchedule(*scheduleClient, scheduleTest.Id)
}

func TestFailedCreateScheduleCommand(t *testing.T) {
cmd := exec.Command(
"go", "run",
"--scheduleTeam", scheduleTeam,
"--scheduleName", scheduleName,
"--scheduleYear", fmt.Sprint(scheduleYear),
)

err := cmd.Run()
if err == nil {
t.Fatalf("Command has been failed")
}
}

func TestCreateViaGoRunScheduleCommand(t *testing.T) {
cmd := exec.Command(
"go", "run",
"main.go",
"--apiKey", *apiKey,
"--scheduleTeam", scheduleTeam,
"--scheduleName", scheduleName,
"--scheduleYear", fmt.Sprint(scheduleYear),
"--delete",
)

err := cmd.Run()
if err != nil {
fmt.Println(cmd)
t.Fatalf("Command has been failed.\nCommand: %s", err)
}
}

func TestBuildCommand(t *testing.T) {
cmd := exec.Command("make", "build")

err := cmd.Run()
if err != nil {
t.Fatalf("Command has been failed")
}
}

func TestCreateScheduleCommand(t *testing.T) {
cmd := exec.Command(
"./opsgenie-scheduler-rotation",
"--apiKey", *apiKey,
"--scheduleTeam", scheduleTeam,
"--scheduleName", scheduleName,
"--scheduleYear", fmt.Sprint(scheduleYear),
"--delete",
)

err := cmd.Run()
if err != nil {
t.Fatalf("Command has been failed.\nCommand: %s", err)
}
}

0 comments on commit 517c552

Please sign in to comment.