open-nomad/e2e/example/example_test.go

53 lines
1.2 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package example
import (
"fmt"
"testing"
"time"
"github.com/hashicorp/nomad/e2e/v3/cluster3"
"github.com/hashicorp/nomad/e2e/v3/jobs3"
"github.com/hashicorp/nomad/e2e/v3/namespaces3"
"github.com/hashicorp/nomad/e2e/v3/util3"
"github.com/shoenig/test/must"
)
func TestExample(t *testing.T) {
cluster3.Establish(t,
cluster3.Leader(),
cluster3.LinuxClients(1),
cluster3.Timeout(3*time.Second),
)
t.Run("testSleep", testSleep)
t.Run("testNamespace", testNamespace)
t.Run("testEnv", testEnv)
}
func testSleep(t *testing.T) {
_, cleanup := jobs3.Submit(t, "./input/sleep.hcl")
t.Cleanup(cleanup)
}
func testNamespace(t *testing.T) {
name := util3.ShortID("example")
nsCleanup := namespaces3.Create(t, name)
t.Cleanup(nsCleanup)
_, jobCleanup := jobs3.Submit(t, "./input/sleep.hcl", jobs3.Namespace(name))
t.Cleanup(jobCleanup)
}
func testEnv(t *testing.T) {
job, cleanup := jobs3.Submit(t, "./input/env.hcl", jobs3.WaitComplete("group"))
t.Cleanup(cleanup)
expect := fmt.Sprintf("NOMAD_JOB_ID=%s", job.JobID())
logs := job.TaskLogs("group", "task")
must.StrContains(t, logs.Stdout, expect)
}