1// +build windows
2
3package agent
4
5import (
6	"context"
7	"encoding/json"
8	"testing"
9	"time"
10
11	"github.com/sensu/sensu-go/transport"
12	"github.com/sensu/sensu-go/types"
13	"github.com/stretchr/testify/assert"
14)
15
16func TestEnvVars(t *testing.T) {
17	checkConfig := types.FixtureCheckConfig("check")
18	checkConfig.EnvVars = []string{"FOO=BAR"}
19	request := &types.CheckRequest{Config: checkConfig, Issued: time.Now().Unix()}
20	checkConfig.Stdin = true
21	checkConfig.Command = "set foo"
22
23	config, cleanup := FixtureConfig()
24	defer cleanup()
25	agent, err := NewAgent(config)
26	if err != nil {
27		t.Fatal(err)
28	}
29	ch := make(chan *transport.Message, 1)
30	agent.sendq = ch
31
32	entity := agent.getAgentEntity()
33	agent.executeCheck(context.TODO(), request, entity)
34	msg := <-ch
35	event := &types.Event{}
36	assert.NoError(t, json.Unmarshal(msg.Payload, event))
37	assert.NotZero(t, event.Timestamp)
38	assert.Equal(t, event.Check.Output, "FOO=BAR\n")
39}
40