mirror of
https://github.com/prometheus/alertmanager
synced 2024-12-18 20:35:13 +00:00
Merge pull request #3636 from mmorel-35/testifylint
golangci-lint: enable testifylint linter
This commit is contained in:
commit
0f2b0c8286
2
.github/workflows/golangci-lint.yml
vendored
2
.github/workflows/golangci-lint.yml
vendored
@ -29,4 +29,4 @@ jobs:
|
|||||||
- name: Lint
|
- name: Lint
|
||||||
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
|
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
|
||||||
with:
|
with:
|
||||||
version: v1.54.2
|
version: v1.55.2
|
||||||
|
@ -13,8 +13,9 @@ linters:
|
|||||||
- errorlint
|
- errorlint
|
||||||
- gofumpt
|
- gofumpt
|
||||||
- goimports
|
- goimports
|
||||||
- revive
|
|
||||||
- misspell
|
- misspell
|
||||||
|
- revive
|
||||||
|
- testifylint
|
||||||
|
|
||||||
issues:
|
issues:
|
||||||
max-issues-per-linter: 0
|
max-issues-per-linter: 0
|
||||||
@ -74,3 +75,18 @@ linters-settings:
|
|||||||
- name: unexported-return
|
- name: unexported-return
|
||||||
- name: indent-error-flow
|
- name: indent-error-flow
|
||||||
- name: errorf
|
- name: errorf
|
||||||
|
testifylint:
|
||||||
|
disable:
|
||||||
|
- float-compare
|
||||||
|
- go-require
|
||||||
|
enable:
|
||||||
|
- bool-compare
|
||||||
|
- compares
|
||||||
|
- empty
|
||||||
|
- error-is-as
|
||||||
|
- error-nil
|
||||||
|
- expected-actual
|
||||||
|
- len
|
||||||
|
- require-error
|
||||||
|
- suite-dont-use-pkg
|
||||||
|
- suite-extra-assert-call
|
||||||
|
@ -69,10 +69,10 @@ func testJoinLeave(t *testing.T) {
|
|||||||
cancel()
|
cancel()
|
||||||
require.Equal(t, context.Canceled, p.WaitReady(ctx))
|
require.Equal(t, context.Canceled, p.WaitReady(ctx))
|
||||||
}
|
}
|
||||||
require.Equal(t, p.Status(), "settling")
|
require.Equal(t, "settling", p.Status())
|
||||||
go p.Settle(context.Background(), 0*time.Second)
|
go p.Settle(context.Background(), 0*time.Second)
|
||||||
require.NoError(t, p.WaitReady(context.Background()))
|
require.NoError(t, p.WaitReady(context.Background()))
|
||||||
require.Equal(t, p.Status(), "ready")
|
require.Equal(t, "ready", p.Status())
|
||||||
|
|
||||||
// Create the peer who joins the first.
|
// Create the peer who joins the first.
|
||||||
p2, err := Create(
|
p2, err := Create(
|
||||||
@ -104,7 +104,7 @@ func testJoinLeave(t *testing.T) {
|
|||||||
require.Equal(t, 2, p.ClusterSize())
|
require.Equal(t, 2, p.ClusterSize())
|
||||||
p2.Leave(0 * time.Second)
|
p2.Leave(0 * time.Second)
|
||||||
require.Equal(t, 1, p.ClusterSize())
|
require.Equal(t, 1, p.ClusterSize())
|
||||||
require.Equal(t, 1, len(p.failedPeers))
|
require.Len(t, p.failedPeers, 1)
|
||||||
require.Equal(t, p2.Self().Address(), p.peers[p2.Self().Address()].Node.Address())
|
require.Equal(t, p2.Self().Address(), p.peers[p2.Self().Address()].Node.Address())
|
||||||
require.Equal(t, p2.Name(), p.failedPeers[0].Name)
|
require.Equal(t, p2.Name(), p.failedPeers[0].Name)
|
||||||
}
|
}
|
||||||
@ -167,12 +167,12 @@ func testReconnect(t *testing.T) {
|
|||||||
p.peerLeave(p2.Self())
|
p.peerLeave(p2.Self())
|
||||||
|
|
||||||
require.Equal(t, 1, p.ClusterSize())
|
require.Equal(t, 1, p.ClusterSize())
|
||||||
require.Equal(t, 1, len(p.failedPeers))
|
require.Len(t, p.failedPeers, 1)
|
||||||
|
|
||||||
p.reconnect()
|
p.reconnect()
|
||||||
|
|
||||||
require.Equal(t, 2, p.ClusterSize())
|
require.Equal(t, 2, p.ClusterSize())
|
||||||
require.Equal(t, 0, len(p.failedPeers))
|
require.Empty(t, p.failedPeers)
|
||||||
require.Equal(t, StatusAlive, p.peers[p2.Self().Address()].status)
|
require.Equal(t, StatusAlive, p.peers[p2.Self().Address()].status)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ func testRemoveFailedPeers(t *testing.T) {
|
|||||||
p.failedPeers = []peer{p1, p2, p3}
|
p.failedPeers = []peer{p1, p2, p3}
|
||||||
|
|
||||||
p.removeFailedPeers(30 * time.Minute)
|
p.removeFailedPeers(30 * time.Minute)
|
||||||
require.Equal(t, 1, len(p.failedPeers))
|
require.Len(t, p.failedPeers, 1)
|
||||||
require.Equal(t, p1, p.failedPeers[0])
|
require.Equal(t, p1, p.failedPeers[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ func testInitiallyFailingPeers(t *testing.T) {
|
|||||||
|
|
||||||
// We shouldn't have added "our" bind addr and the FQDN address to the
|
// We shouldn't have added "our" bind addr and the FQDN address to the
|
||||||
// failed peers list.
|
// failed peers list.
|
||||||
require.Equal(t, len(peerAddrs)-2, len(p.failedPeers))
|
require.Len(t, p.failedPeers, len(peerAddrs)-2)
|
||||||
for _, addr := range peerAddrs {
|
for _, addr := range peerAddrs {
|
||||||
if addr == myAddr || addr == "foo.example.com:5000" {
|
if addr == myAddr || addr == "foo.example.com:5000" {
|
||||||
continue
|
continue
|
||||||
@ -270,7 +270,7 @@ func testInitiallyFailingPeers(t *testing.T) {
|
|||||||
require.Equal(t, addr, pr.Address())
|
require.Equal(t, addr, pr.Address())
|
||||||
expectedLen := len(p.failedPeers) - 1
|
expectedLen := len(p.failedPeers) - 1
|
||||||
p.peerJoin(pr.Node)
|
p.peerJoin(pr.Node)
|
||||||
require.Equal(t, expectedLen, len(p.failedPeers))
|
require.Len(t, p.failedPeers, expectedLen)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,10 +302,10 @@ func testTLSConnection(t *testing.T) {
|
|||||||
)
|
)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.False(t, p1.Ready())
|
require.False(t, p1.Ready())
|
||||||
require.Equal(t, p1.Status(), "settling")
|
require.Equal(t, "settling", p1.Status())
|
||||||
go p1.Settle(context.Background(), 0*time.Second)
|
go p1.Settle(context.Background(), 0*time.Second)
|
||||||
p1.WaitReady(context.Background())
|
p1.WaitReady(context.Background())
|
||||||
require.Equal(t, p1.Status(), "ready")
|
require.Equal(t, "ready", p1.Status())
|
||||||
|
|
||||||
// Create the peer who joins the first.
|
// Create the peer who joins the first.
|
||||||
tlsTransportConfig2, err := GetTLSTransportConfig("./testdata/tls_config_node2.yml")
|
tlsTransportConfig2, err := GetTLSTransportConfig("./testdata/tls_config_node2.yml")
|
||||||
@ -338,7 +338,7 @@ func testTLSConnection(t *testing.T) {
|
|||||||
require.Equal(t, 2, p1.ClusterSize())
|
require.Equal(t, 2, p1.ClusterSize())
|
||||||
p2.Leave(0 * time.Second)
|
p2.Leave(0 * time.Second)
|
||||||
require.Equal(t, 1, p1.ClusterSize())
|
require.Equal(t, 1, p1.ClusterSize())
|
||||||
require.Equal(t, 1, len(p1.failedPeers))
|
require.Len(t, p1.failedPeers, 1)
|
||||||
require.Equal(t, p2.Self().Address(), p1.peers[p2.Self().Address()].Node.Address())
|
require.Equal(t, p2.Self().Address(), p1.peers[p2.Self().Address()].Node.Address())
|
||||||
require.Equal(t, p2.Name(), p1.failedPeers[0].Name)
|
require.Equal(t, p2.Name(), p1.failedPeers[0].Name)
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ func TestWriteStream(t *testing.T) {
|
|||||||
w.Close()
|
w.Close()
|
||||||
}()
|
}()
|
||||||
packet, err := rcvTLSConn(r).read()
|
packet, err := rcvTLSConn(r).read()
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Nil(t, packet)
|
require.Nil(t, packet)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ func TestWritePacket(t *testing.T) {
|
|||||||
w.Close()
|
w.Close()
|
||||||
}()
|
}()
|
||||||
packet, err := rcvTLSConn(r).read()
|
packet, err := rcvTLSConn(r).read()
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, tc.msg, string(packet.Buf))
|
require.Equal(t, tc.msg, string(packet.Buf))
|
||||||
require.Equal(t, tc.fromAddr, packet.From.String())
|
require.Equal(t, tc.fromAddr, packet.From.String())
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ func TestWritePacket(t *testing.T) {
|
|||||||
func TestRead_Nil(t *testing.T) {
|
func TestRead_Nil(t *testing.T) {
|
||||||
packet, err := (&tlsConn{}).read()
|
packet, err := (&tlsConn{}).read()
|
||||||
require.Nil(t, packet)
|
require.Nil(t, packet)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTLSConn_Close(t *testing.T) {
|
func TestTLSConn_Close(t *testing.T) {
|
||||||
|
@ -128,14 +128,14 @@ func TestFinalAdvertiseAddr(t *testing.T) {
|
|||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
tlsConf := loadTLSTransportConfig(t, "testdata/tls_config_node1.yml")
|
tlsConf := loadTLSTransportConfig(t, "testdata/tls_config_node1.yml")
|
||||||
transport, err := NewTLSTransport(context2.Background(), logger, nil, tc.bindAddr, tc.bindPort, tlsConf)
|
transport, err := NewTLSTransport(context2.Background(), logger, nil, tc.bindAddr, tc.bindPort, tlsConf)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
ip, port, err := transport.FinalAdvertiseAddr(tc.inputIP, tc.inputPort)
|
ip, port, err := transport.FinalAdvertiseAddr(tc.inputIP, tc.inputPort)
|
||||||
if len(tc.expectedError) > 0 {
|
if len(tc.expectedError) > 0 {
|
||||||
require.Equal(t, tc.expectedError, err.Error())
|
require.Equal(t, tc.expectedError, err.Error())
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
if tc.expectedPort == 0 {
|
if tc.expectedPort == 0 {
|
||||||
require.True(t, tc.expectedPort < port)
|
require.Less(t, tc.expectedPort, port)
|
||||||
} else {
|
} else {
|
||||||
require.Equal(t, tc.expectedPort, port)
|
require.Equal(t, tc.expectedPort, port)
|
||||||
}
|
}
|
||||||
@ -162,7 +162,7 @@ func TestWriteTo(t *testing.T) {
|
|||||||
to := fmt.Sprintf("%s:%d", t2.bindAddr, t2.GetAutoBindPort())
|
to := fmt.Sprintf("%s:%d", t2.bindAddr, t2.GetAutoBindPort())
|
||||||
sent := []byte(("test packet"))
|
sent := []byte(("test packet"))
|
||||||
_, err := t1.WriteTo(sent, to)
|
_, err := t1.WriteTo(sent, to)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
packet := <-t2.PacketCh()
|
packet := <-t2.PacketCh()
|
||||||
require.Equal(t, sent, packet.Buf)
|
require.Equal(t, sent, packet.Buf)
|
||||||
require.Equal(t, from, packet.From.String())
|
require.Equal(t, from, packet.From.String())
|
||||||
@ -183,7 +183,7 @@ func BenchmarkWriteTo(b *testing.B) {
|
|||||||
sent := []byte(("test packet"))
|
sent := []byte(("test packet"))
|
||||||
|
|
||||||
_, err := t1.WriteTo(sent, to)
|
_, err := t1.WriteTo(sent, to)
|
||||||
require.Nil(b, err)
|
require.NoError(b, err)
|
||||||
packet := <-t2.PacketCh()
|
packet := <-t2.PacketCh()
|
||||||
|
|
||||||
require.Equal(b, sent, packet.Buf)
|
require.Equal(b, sent, packet.Buf)
|
||||||
@ -193,17 +193,17 @@ func BenchmarkWriteTo(b *testing.B) {
|
|||||||
func TestDialTimeout(t *testing.T) {
|
func TestDialTimeout(t *testing.T) {
|
||||||
tlsConf1 := loadTLSTransportConfig(t, "testdata/tls_config_node1.yml")
|
tlsConf1 := loadTLSTransportConfig(t, "testdata/tls_config_node1.yml")
|
||||||
t1, err := NewTLSTransport(context2.Background(), logger, nil, "127.0.0.1", 0, tlsConf1)
|
t1, err := NewTLSTransport(context2.Background(), logger, nil, "127.0.0.1", 0, tlsConf1)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer t1.Shutdown()
|
defer t1.Shutdown()
|
||||||
|
|
||||||
tlsConf2 := loadTLSTransportConfig(t, "testdata/tls_config_node2.yml")
|
tlsConf2 := loadTLSTransportConfig(t, "testdata/tls_config_node2.yml")
|
||||||
t2, err := NewTLSTransport(context2.Background(), logger, nil, "127.0.0.1", 0, tlsConf2)
|
t2, err := NewTLSTransport(context2.Background(), logger, nil, "127.0.0.1", 0, tlsConf2)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer t2.Shutdown()
|
defer t2.Shutdown()
|
||||||
|
|
||||||
addr := fmt.Sprintf("%s:%d", t2.bindAddr, t2.GetAutoBindPort())
|
addr := fmt.Sprintf("%s:%d", t2.bindAddr, t2.GetAutoBindPort())
|
||||||
from, err := t1.DialTimeout(addr, 5*time.Second)
|
from, err := t1.DialTimeout(addr, 5*time.Second)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer from.Close()
|
defer from.Close()
|
||||||
|
|
||||||
var to net.Conn
|
var to net.Conn
|
||||||
@ -216,7 +216,7 @@ func TestDialTimeout(t *testing.T) {
|
|||||||
|
|
||||||
sent := []byte(("test stream"))
|
sent := []byte(("test stream"))
|
||||||
m, err := from.Write(sent)
|
m, err := from.Write(sent)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Greater(t, m, 0)
|
require.Greater(t, m, 0)
|
||||||
|
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
@ -224,8 +224,8 @@ func TestDialTimeout(t *testing.T) {
|
|||||||
reader := bufio.NewReader(to)
|
reader := bufio.NewReader(to)
|
||||||
buf := make([]byte, len(sent))
|
buf := make([]byte, len(sent))
|
||||||
n, err := io.ReadFull(reader, buf)
|
n, err := io.ReadFull(reader, buf)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, len(sent), n)
|
require.Len(t, sent, n)
|
||||||
require.Equal(t, sent, buf)
|
require.Equal(t, sent, buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +245,7 @@ func TestShutdown(t *testing.T) {
|
|||||||
// Sleeping to make sure listeners have started and can subsequently be shut down gracefully.
|
// Sleeping to make sure listeners have started and can subsequently be shut down gracefully.
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
err := t1.Shutdown()
|
err := t1.Shutdown()
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotContains(t, string(l.bytes), "use of closed network connection")
|
require.NotContains(t, string(l.bytes), "use of closed network connection")
|
||||||
require.Contains(t, string(l.bytes), "shutting down tls transport")
|
require.Contains(t, string(l.bytes), "shutting down tls transport")
|
||||||
}
|
}
|
||||||
|
@ -398,7 +398,7 @@ route:
|
|||||||
for i := 0; len(recorder.Alerts()) != 7 && i < 10; i++ {
|
for i := 0; len(recorder.Alerts()) != 7 && i < 10; i++ {
|
||||||
time.Sleep(200 * time.Millisecond)
|
time.Sleep(200 * time.Millisecond)
|
||||||
}
|
}
|
||||||
require.Equal(t, 7, len(recorder.Alerts()))
|
require.Len(t, recorder.Alerts(), 7)
|
||||||
|
|
||||||
alertGroups, receivers := dispatcher.Groups(
|
alertGroups, receivers := dispatcher.Groups(
|
||||||
func(*Route) bool {
|
func(*Route) bool {
|
||||||
@ -541,7 +541,7 @@ route:
|
|||||||
for i := 0; len(recorder.Alerts()) != 7 && i < 10; i++ {
|
for i := 0; len(recorder.Alerts()) != 7 && i < 10; i++ {
|
||||||
time.Sleep(200 * time.Millisecond)
|
time.Sleep(200 * time.Millisecond)
|
||||||
}
|
}
|
||||||
require.Equal(t, 7, len(recorder.Alerts()))
|
require.Len(t, recorder.Alerts(), 7)
|
||||||
|
|
||||||
routeFilter := func(*Route) bool { return true }
|
routeFilter := func(*Route) bool { return true }
|
||||||
alertFilter := func(*types.Alert, time.Time) bool { return true }
|
alertFilter := func(*types.Alert, time.Time) bool { return true }
|
||||||
@ -681,7 +681,7 @@ func TestDispatcherRaceOnFirstAlertNotDeliveredWhenGroupWaitIsZero(t *testing.T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We expect all alerts to be notified immediately, since they all belong to different groups.
|
// We expect all alerts to be notified immediately, since they all belong to different groups.
|
||||||
require.Equal(t, numAlerts, len(recorder.Alerts()))
|
require.Len(t, recorder.Alerts(), numAlerts)
|
||||||
}
|
}
|
||||||
|
|
||||||
type limits struct {
|
type limits struct {
|
||||||
|
@ -378,9 +378,9 @@ routes:
|
|||||||
parent := tree.Routes[0]
|
parent := tree.Routes[0]
|
||||||
child1 := parent.Routes[0]
|
child1 := parent.Routes[0]
|
||||||
child2 := parent.Routes[1]
|
child2 := parent.Routes[1]
|
||||||
require.Equal(t, parent.RouteOpts.GroupByAll, true)
|
require.True(t, parent.RouteOpts.GroupByAll)
|
||||||
require.Equal(t, child1.RouteOpts.GroupByAll, true)
|
require.True(t, child1.RouteOpts.GroupByAll)
|
||||||
require.Equal(t, child2.RouteOpts.GroupByAll, false)
|
require.False(t, child2.RouteOpts.GroupByAll)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRouteMatchers(t *testing.T) {
|
func TestRouteMatchers(t *testing.T) {
|
||||||
|
@ -53,7 +53,7 @@ func TestFallbackMatcherParser(t *testing.T) {
|
|||||||
if test.err != "" {
|
if test.err != "" {
|
||||||
require.EqualError(t, err, test.err)
|
require.EqualError(t, err, test.err)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.EqualValues(t, test.expected, matcher)
|
require.EqualValues(t, test.expected, matcher)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -99,7 +99,7 @@ func TestFallbackMatchersParser(t *testing.T) {
|
|||||||
if test.err != "" {
|
if test.err != "" {
|
||||||
require.EqualError(t, err, test.err)
|
require.EqualError(t, err, test.err)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.EqualValues(t, test.expected, matchers)
|
require.EqualValues(t, test.expected, matchers)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -219,7 +219,7 @@ func TestMatchers(t *testing.T) {
|
|||||||
if test.error != "" {
|
if test.error != "" {
|
||||||
require.EqualError(t, err, test.error)
|
require.EqualError(t, err, test.error)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.EqualValues(t, test.expected, matchers)
|
require.EqualValues(t, test.expected, matchers)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -363,7 +363,7 @@ func TestMatcher(t *testing.T) {
|
|||||||
if test.error != "" {
|
if test.error != "" {
|
||||||
require.EqualError(t, err, test.error)
|
require.EqualError(t, err, test.error)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.EqualValues(t, test.expected, matcher)
|
require.EqualValues(t, test.expected, matcher)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -57,7 +57,7 @@ func TestLogGC(t *testing.T) {
|
|||||||
expected := state{
|
expected := state{
|
||||||
"a2": newEntry(now.Add(time.Second)),
|
"a2": newEntry(now.Add(time.Second)),
|
||||||
}
|
}
|
||||||
require.Equal(t, l.st, expected, "unexpected state after garbage collection")
|
require.Equal(t, expected, l.st, "unexpected state after garbage collection")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLogSnapshot(t *testing.T) {
|
func TestLogSnapshot(t *testing.T) {
|
||||||
|
@ -300,7 +300,7 @@ func TestEmailNotifyWithErrors(t *testing.T) {
|
|||||||
_, retry, err := notifyEmail(emailCfg, c.Server)
|
_, retry, err := notifyEmail(emailCfg, c.Server)
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Contains(t, err.Error(), tc.errMsg)
|
require.Contains(t, err.Error(), tc.errMsg)
|
||||||
require.Equal(t, false, retry)
|
require.False(t, retry)
|
||||||
|
|
||||||
e, err := c.Server.getLastEmail()
|
e, err := c.Server.getLastEmail()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -610,7 +610,7 @@ func TestEmailConfigNoAuthMechs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
_, err := email.auth("")
|
_, err := email.auth("")
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "unknown auth mechanism: ")
|
require.Equal(t, "unknown auth mechanism: ", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEmailConfigMissingAuthParam(t *testing.T) {
|
func TestEmailConfigMissingAuthParam(t *testing.T) {
|
||||||
@ -620,19 +620,19 @@ func TestEmailConfigMissingAuthParam(t *testing.T) {
|
|||||||
}
|
}
|
||||||
_, err := email.auth("CRAM-MD5")
|
_, err := email.auth("CRAM-MD5")
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "missing secret for CRAM-MD5 auth mechanism")
|
require.Equal(t, "missing secret for CRAM-MD5 auth mechanism", err.Error())
|
||||||
|
|
||||||
_, err = email.auth("PLAIN")
|
_, err = email.auth("PLAIN")
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "missing password for PLAIN auth mechanism")
|
require.Equal(t, "missing password for PLAIN auth mechanism", err.Error())
|
||||||
|
|
||||||
_, err = email.auth("LOGIN")
|
_, err = email.auth("LOGIN")
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "missing password for LOGIN auth mechanism")
|
require.Equal(t, "missing password for LOGIN auth mechanism", err.Error())
|
||||||
|
|
||||||
_, err = email.auth("PLAIN LOGIN")
|
_, err = email.auth("PLAIN LOGIN")
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "missing password for PLAIN auth mechanism; missing password for LOGIN auth mechanism")
|
require.Equal(t, "missing password for PLAIN auth mechanism; missing password for LOGIN auth mechanism", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEmailNoUsernameStillOk(t *testing.T) {
|
func TestEmailNoUsernameStillOk(t *testing.T) {
|
||||||
|
@ -16,7 +16,6 @@ package msteams
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -187,7 +186,7 @@ func TestNotifier_Notify_WithReason(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
} else {
|
} else {
|
||||||
var reasonError *notify.ErrorWithReason
|
var reasonError *notify.ErrorWithReason
|
||||||
require.True(t, errors.As(err, &reasonError))
|
require.ErrorAs(t, err, &reasonError)
|
||||||
require.Equal(t, tt.expectedReason, reasonError.Reason)
|
require.Equal(t, tt.expectedReason, reasonError.Reason)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -407,7 +407,7 @@ func TestRetryStageWithError(t *testing.T) {
|
|||||||
|
|
||||||
// Notify with a recoverable error should retry and succeed.
|
// Notify with a recoverable error should retry and succeed.
|
||||||
resctx, res, err := r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err := r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.Equal(t, alerts, sent)
|
require.Equal(t, alerts, sent)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
@ -417,7 +417,7 @@ func TestRetryStageWithError(t *testing.T) {
|
|||||||
fail = true
|
fail = true
|
||||||
retry = false
|
retry = false
|
||||||
resctx, _, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, _, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,7 +464,7 @@ func TestRetryStageWithErrorCode(t *testing.T) {
|
|||||||
|
|
||||||
require.Equal(t, testData.expectedCount, int(prom_testutil.ToFloat64(counter.WithLabelValues(r.integration.Name(), testData.reasonlabel))))
|
require.Equal(t, testData.expectedCount, int(prom_testutil.ToFloat64(counter.WithLabelValues(r.integration.Name(), testData.reasonlabel))))
|
||||||
|
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -498,7 +498,7 @@ func TestRetryStageWithContextCanceled(t *testing.T) {
|
|||||||
|
|
||||||
require.Equal(t, 1, int(prom_testutil.ToFloat64(counter.WithLabelValues(r.integration.Name(), ContextCanceledReason.String()))))
|
require.Equal(t, 1, int(prom_testutil.ToFloat64(counter.WithLabelValues(r.integration.Name(), ContextCanceledReason.String()))))
|
||||||
|
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ func TestRetryStageNoResolved(t *testing.T) {
|
|||||||
ctx = WithFiringAlerts(ctx, []uint64{0})
|
ctx = WithFiringAlerts(ctx, []uint64{0})
|
||||||
|
|
||||||
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.Equal(t, []*types.Alert{alerts[1]}, sent)
|
require.Equal(t, []*types.Alert{alerts[1]}, sent)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
@ -547,7 +547,7 @@ func TestRetryStageNoResolved(t *testing.T) {
|
|||||||
alerts[1].Alert.EndsAt = time.Now().Add(-time.Hour)
|
alerts[1].Alert.EndsAt = time.Now().Add(-time.Hour)
|
||||||
|
|
||||||
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.Equal(t, []*types.Alert{}, sent)
|
require.Equal(t, []*types.Alert{}, sent)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
@ -581,7 +581,7 @@ func TestRetryStageSendResolved(t *testing.T) {
|
|||||||
ctx = WithFiringAlerts(ctx, []uint64{0})
|
ctx = WithFiringAlerts(ctx, []uint64{0})
|
||||||
|
|
||||||
resctx, res, err := r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err := r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.Equal(t, alerts, sent)
|
require.Equal(t, alerts, sent)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
@ -592,7 +592,7 @@ func TestRetryStageSendResolved(t *testing.T) {
|
|||||||
alerts[1].Alert.EndsAt = time.Now().Add(-time.Hour)
|
alerts[1].Alert.EndsAt = time.Now().Add(-time.Hour)
|
||||||
|
|
||||||
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err = r.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.Equal(t, alerts, sent)
|
require.Equal(t, alerts, sent)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
@ -638,7 +638,7 @@ func TestSetNotifiesStage(t *testing.T) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
resctx, res, err = s.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err = s.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
|
|
||||||
@ -654,7 +654,7 @@ func TestSetNotifiesStage(t *testing.T) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
resctx, res, err = s.Exec(ctx, log.NewNopLogger(), alerts...)
|
resctx, res, err = s.Exec(ctx, log.NewNopLogger(), alerts...)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, alerts, res)
|
require.Equal(t, alerts, res)
|
||||||
require.NotNil(t, resctx)
|
require.NotNil(t, resctx)
|
||||||
}
|
}
|
||||||
|
@ -230,7 +230,7 @@ func TestOpsGenie(t *testing.T) {
|
|||||||
req, retry, err := notifier.createRequests(ctx, alert1)
|
req, retry, err := notifier.createRequests(ctx, alert1)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, req, 1)
|
require.Len(t, req, 1)
|
||||||
require.Equal(t, true, retry)
|
require.True(t, retry)
|
||||||
require.Equal(t, expectedURL, req[0].URL)
|
require.Equal(t, expectedURL, req[0].URL)
|
||||||
require.Equal(t, "GenieKey http://am", req[0].Header.Get("Authorization"))
|
require.Equal(t, "GenieKey http://am", req[0].Header.Get("Authorization"))
|
||||||
require.Equal(t, tc.expectedEmptyAlertBody, readBody(t, req[0]))
|
require.Equal(t, tc.expectedEmptyAlertBody, readBody(t, req[0]))
|
||||||
@ -260,7 +260,7 @@ func TestOpsGenie(t *testing.T) {
|
|||||||
}
|
}
|
||||||
req, retry, err = notifier.createRequests(ctx, alert2)
|
req, retry, err = notifier.createRequests(ctx, alert2)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, true, retry)
|
require.True(t, retry)
|
||||||
require.Len(t, req, 1)
|
require.Len(t, req, 1)
|
||||||
require.Equal(t, tc.expectedBody, readBody(t, req[0]))
|
require.Equal(t, tc.expectedBody, readBody(t, req[0]))
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ func TestOpsGenie(t *testing.T) {
|
|||||||
tc.cfg.APIKey = "{{ kaput "
|
tc.cfg.APIKey = "{{ kaput "
|
||||||
_, _, err = notifier.createRequests(ctx, alert2)
|
_, _, err = notifier.createRequests(ctx, alert2)
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.Equal(t, err.Error(), "templating error: template: :1: function \"kaput\" not defined")
|
require.Equal(t, "templating error: template: :1: function \"kaput\" not defined", err.Error())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -310,15 +310,15 @@ func TestOpsGenieWithUpdate(t *testing.T) {
|
|||||||
key, _ := notify.ExtractGroupKey(ctx)
|
key, _ := notify.ExtractGroupKey(ctx)
|
||||||
alias := key.Hash()
|
alias := key.Hash()
|
||||||
|
|
||||||
require.Equal(t, requests[0].URL.String(), "https://test-opsgenie-url/v2/alerts")
|
require.Equal(t, "https://test-opsgenie-url/v2/alerts", requests[0].URL.String())
|
||||||
require.NotEmpty(t, body0)
|
require.NotEmpty(t, body0)
|
||||||
|
|
||||||
require.Equal(t, requests[1].URL.String(), fmt.Sprintf("https://test-opsgenie-url/v2/alerts/%s/message?identifierType=alias", alias))
|
require.Equal(t, requests[1].URL.String(), fmt.Sprintf("https://test-opsgenie-url/v2/alerts/%s/message?identifierType=alias", alias))
|
||||||
require.Equal(t, body1, `{"message":"new message"}
|
require.Equal(t, `{"message":"new message"}
|
||||||
`)
|
`, body1)
|
||||||
require.Equal(t, requests[2].URL.String(), fmt.Sprintf("https://test-opsgenie-url/v2/alerts/%s/description?identifierType=alias", alias))
|
require.Equal(t, requests[2].URL.String(), fmt.Sprintf("https://test-opsgenie-url/v2/alerts/%s/description?identifierType=alias", alias))
|
||||||
require.Equal(t, body2, `{"description":"new description"}
|
require.Equal(t, `{"description":"new description"}
|
||||||
`)
|
`, body2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func readBody(t *testing.T, r *http.Request) string {
|
func readBody(t *testing.T, r *http.Request) string {
|
||||||
|
@ -15,7 +15,6 @@ package slack
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -228,7 +227,7 @@ func TestNotifier_Notify_WithReason(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
} else {
|
} else {
|
||||||
var reasonError *notify.ErrorWithReason
|
var reasonError *notify.ErrorWithReason
|
||||||
require.True(t, errors.As(err, &reasonError))
|
require.ErrorAs(t, err, &reasonError)
|
||||||
require.Equal(t, tt.expectedReason, reasonError.Reason)
|
require.Equal(t, tt.expectedReason, reasonError.Reason)
|
||||||
require.Contains(t, err.Error(), tt.expectedErr)
|
require.Contains(t, err.Error(), tt.expectedErr)
|
||||||
require.Contains(t, err.Error(), "channelname")
|
require.Contains(t, err.Error(), "channelname")
|
||||||
|
@ -28,7 +28,7 @@ func TestValidateAndTruncateMessage(t *testing.T) {
|
|||||||
require.True(t, isTruncated)
|
require.True(t, isTruncated)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotEqual(t, sBuff, truncatedMessage)
|
require.NotEqual(t, sBuff, truncatedMessage)
|
||||||
require.Equal(t, len(truncatedMessage), 256*1024)
|
require.Len(t, truncatedMessage, 256*1024)
|
||||||
|
|
||||||
sBuff = make([]byte, 100)
|
sBuff = make([]byte, 100)
|
||||||
for i := range sBuff {
|
for i := range sBuff {
|
||||||
|
@ -89,15 +89,15 @@ func TestWebhookTruncateAlerts(t *testing.T) {
|
|||||||
|
|
||||||
truncatedAlerts, numTruncated := truncateAlerts(0, alerts)
|
truncatedAlerts, numTruncated := truncateAlerts(0, alerts)
|
||||||
require.Len(t, truncatedAlerts, 10)
|
require.Len(t, truncatedAlerts, 10)
|
||||||
require.EqualValues(t, numTruncated, 0)
|
require.EqualValues(t, 0, numTruncated)
|
||||||
|
|
||||||
truncatedAlerts, numTruncated = truncateAlerts(4, alerts)
|
truncatedAlerts, numTruncated = truncateAlerts(4, alerts)
|
||||||
require.Len(t, truncatedAlerts, 4)
|
require.Len(t, truncatedAlerts, 4)
|
||||||
require.EqualValues(t, numTruncated, 6)
|
require.EqualValues(t, 6, numTruncated)
|
||||||
|
|
||||||
truncatedAlerts, numTruncated = truncateAlerts(100, alerts)
|
truncatedAlerts, numTruncated = truncateAlerts(100, alerts)
|
||||||
require.Len(t, truncatedAlerts, 10)
|
require.Len(t, truncatedAlerts, 10)
|
||||||
require.EqualValues(t, numTruncated, 0)
|
require.EqualValues(t, 0, numTruncated)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWebhookRedactedURL(t *testing.T) {
|
func TestWebhookRedactedURL(t *testing.T) {
|
||||||
|
@ -285,7 +285,7 @@ func TestSilencesSetSilence(t *testing.T) {
|
|||||||
_, err := pbutil.ReadDelimited(r, &e)
|
_, err := pbutil.ReadDelimited(r, &e)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Equal(t, want["some_id"], &e)
|
require.Equal(t, &e, want["some_id"])
|
||||||
close(done)
|
close(done)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +322,7 @@ func TestSilenceSet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
id1, err := s.Set(sil1)
|
id1, err := s.Set(sil1)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotEqual(t, id1, "")
|
require.NotEqual(t, "", id1)
|
||||||
|
|
||||||
want := state{
|
want := state{
|
||||||
id1: &pb.MeshSilence{
|
id1: &pb.MeshSilence{
|
||||||
@ -348,7 +348,7 @@ func TestSilenceSet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
id2, err := s.Set(sil2)
|
id2, err := s.Set(sil2)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotEqual(t, id2, "")
|
require.NotEqual(t, "", id2)
|
||||||
|
|
||||||
want = state{
|
want = state{
|
||||||
id1: want[id1],
|
id1: want[id1],
|
||||||
@ -942,7 +942,7 @@ func TestSilenceExpire(t *testing.T) {
|
|||||||
// Expiring a pending Silence should make the API return the
|
// Expiring a pending Silence should make the API return the
|
||||||
// SilenceStateExpired Silence state.
|
// SilenceStateExpired Silence state.
|
||||||
silenceState := types.CalcSilenceState(sil.StartsAt, sil.EndsAt)
|
silenceState := types.CalcSilenceState(sil.StartsAt, sil.EndsAt)
|
||||||
require.Equal(t, silenceState, types.SilenceStateExpired)
|
require.Equal(t, types.SilenceStateExpired, silenceState)
|
||||||
|
|
||||||
sil, err = s.QueryOne(QIDs("active"))
|
sil, err = s.QueryOne(QIDs("active"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -1628,7 +1628,7 @@ func benchmarkSilencesQuery(b *testing.B, numSilences int) {
|
|||||||
QMatches(lset),
|
QMatches(lset),
|
||||||
)
|
)
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
require.Equal(b, numSilences/10, len(sils))
|
require.Len(b, sils, numSilences/10)
|
||||||
|
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
@ -1637,7 +1637,7 @@ func benchmarkSilencesQuery(b *testing.B, numSilences int) {
|
|||||||
QMatches(lset),
|
QMatches(lset),
|
||||||
)
|
)
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
require.Equal(b, numSilences/10, len(sils))
|
require.Len(b, sils, numSilences/10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,5 +109,5 @@ func TestGC(t *testing.T) {
|
|||||||
t.Errorf("alert %v should have been gc'd", alert)
|
t.Errorf("alert %v should have been gc'd", alert)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
require.Equal(t, len(resolved), n)
|
require.Len(t, resolved, n)
|
||||||
}
|
}
|
||||||
|
@ -394,7 +394,7 @@ func TestTemplateExpansion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
got, err := f(tc.in, tc.data)
|
got, err := f(tc.in, tc.data)
|
||||||
if tc.fail {
|
if tc.fail {
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -458,7 +458,7 @@ func TestTemplateExpansionWithOptions(t *testing.T) {
|
|||||||
}
|
}
|
||||||
got, err := f(tc.in, tc.data)
|
got, err := f(tc.in, tc.data)
|
||||||
if tc.fail {
|
if tc.fail {
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -174,7 +174,7 @@ receivers:
|
|||||||
for _, al := range resp.Payload {
|
for _, al := range resp.Payload {
|
||||||
require.Equal(t, models.AlertStatusStateSuppressed, *al.Status.State)
|
require.Equal(t, models.AlertStatusStateSuppressed, *al.Status.State)
|
||||||
require.Equal(t, fp.String(), *al.Fingerprint)
|
require.Equal(t, fp.String(), *al.Fingerprint)
|
||||||
require.Equal(t, 1, len(al.Status.SilencedBy))
|
require.Len(t, al.Status.SilencedBy, 1)
|
||||||
require.Equal(t, silenceID, al.Status.SilencedBy[0])
|
require.Equal(t, silenceID, al.Status.SilencedBy[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,12 +189,12 @@ receivers:
|
|||||||
resp, err = am.Client().Alert.GetAlerts(nil)
|
resp, err = am.Client().Alert.GetAlerts(nil)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
for _, al := range resp.Payload {
|
for _, al := range resp.Payload {
|
||||||
require.Equal(t, 1, len(al.Status.SilencedBy))
|
require.Len(t, al.Status.SilencedBy, 1)
|
||||||
require.Equal(t, silenceID, al.Status.SilencedBy[0])
|
require.Equal(t, silenceID, al.Status.SilencedBy[0])
|
||||||
if fp.String() == *al.Fingerprint {
|
if fp.String() == *al.Fingerprint {
|
||||||
require.Equal(t, models.AlertStatusStateSuppressed, *al.Status.State)
|
require.Equal(t, models.AlertStatusStateSuppressed, *al.Status.State)
|
||||||
require.Equal(t, fp.String(), *al.Fingerprint)
|
require.Equal(t, fp.String(), *al.Fingerprint)
|
||||||
require.Equal(t, 1, len(al.Status.InhibitedBy))
|
require.Len(t, al.Status.InhibitedBy, 1)
|
||||||
require.Equal(t, inhibitingFP.String(), al.Status.InhibitedBy[0])
|
require.Equal(t, inhibitingFP.String(), al.Status.InhibitedBy[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -208,7 +208,7 @@ receivers:
|
|||||||
// Silence has been deleted, inhibiting alert should be active.
|
// Silence has been deleted, inhibiting alert should be active.
|
||||||
// Original alert should still be inhibited.
|
// Original alert should still be inhibited.
|
||||||
for _, al := range resp.Payload {
|
for _, al := range resp.Payload {
|
||||||
require.Equal(t, 0, len(al.Status.SilencedBy))
|
require.Empty(t, al.Status.SilencedBy)
|
||||||
if inhibitingFP.String() == *al.Fingerprint {
|
if inhibitingFP.String() == *al.Fingerprint {
|
||||||
require.Equal(t, models.AlertStatusStateActive, *al.Status.State)
|
require.Equal(t, models.AlertStatusStateActive, *al.Status.State)
|
||||||
} else {
|
} else {
|
||||||
@ -277,7 +277,7 @@ receivers:
|
|||||||
filter := []string{"alertname=test1", "severity=warning"}
|
filter := []string{"alertname=test1", "severity=warning"}
|
||||||
resp, err := am.Client().Alert.GetAlerts(alert.NewGetAlertsParams().WithFilter(filter))
|
resp, err := am.Client().Alert.GetAlerts(alert.NewGetAlertsParams().WithFilter(filter))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, 1, len(resp.Payload))
|
require.Len(t, resp.Payload, 1)
|
||||||
for _, al := range resp.Payload {
|
for _, al := range resp.Payload {
|
||||||
require.Equal(t, models.AlertStatusStateActive, *al.Status.State)
|
require.Equal(t, models.AlertStatusStateActive, *al.Status.State)
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ receivers:
|
|||||||
alertParams.Alerts = models.PostableAlerts{pa}
|
alertParams.Alerts = models.PostableAlerts{pa}
|
||||||
|
|
||||||
_, err := am.Client().Alert.PostAlerts(alertParams)
|
_, err := am.Client().Alert.PostAlerts(alertParams)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
require.True(t, strings.Contains(err.Error(), "invalid label set"))
|
require.True(t, strings.Contains(err.Error(), "invalid label set"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ receivers:
|
|||||||
silenceParams.Silence = &ps
|
silenceParams.Silence = &ps
|
||||||
|
|
||||||
_, err := am.Client().Silence.PostSilences(silenceParams)
|
_, err := am.Client().Silence.PostSilences(silenceParams)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
require.True(t, strings.Contains(err.Error(), "silence invalid: invalid label matcher"))
|
require.True(t, strings.Contains(err.Error(), "silence invalid: invalid label matcher"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user