Skip to content

Commit 1b01710

Browse files
authored
chore: adds a new test for everything complex (#3695)
1 parent 0ffdd53 commit 1b01710

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

internal/web/__snapshots__/web.snapshot

+4
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ Content-Type: text/html
8484
{"m":"INFO Testing stdout logs...","ts":1589396137772,"id":466600245,"l":"info","s":"stdout","c":"123456"}
8585
{"m":"INFO Testing stderr logs...","ts":1589396197772,"id":1101501603,"l":"info","s":"stderr","c":"123456"}
8686

87+
/* snapshot: Test_handler_between_dates_with_everything_complex */
88+
{"m":{"msg":"a complex log message"},"ts":1589396197772,"id":62280847,"l":"unknown","s":"stdout","c":"123456"}
89+
90+
8791
/* snapshot: Test_handler_between_dates_with_fill */
8892
{"m":"INFO Testing stdout logs...","ts":1589396137772,"id":466600245,"l":"info","s":"stdout","c":"123456"}
8993
{"m":"INFO Testing stderr logs...","ts":1589396197772,"id":1101501603,"l":"info","s":"stderr","c":"123456"}

internal/web/logs_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,46 @@ func Test_handler_between_dates_with_fill(t *testing.T) {
300300
mockedClient.AssertExpectations(t)
301301
}
302302

303+
func Test_handler_between_dates_with_everything_complex(t *testing.T) {
304+
id := "123456"
305+
req, err := http.NewRequest("GET", "/api/hosts/localhost/containers/"+id+"/logs", nil)
306+
require.NoError(t, err, "NewRequest should not return an error.")
307+
308+
q := req.URL.Query()
309+
q.Add("jsonOnly", "true")
310+
q.Add("stdout", "true")
311+
q.Add("stderr", "true")
312+
q.Add("everything", "true")
313+
q.Add("levels", "info")
314+
315+
req.URL.RawQuery = q.Encode()
316+
317+
mockedClient := new(MockedClient)
318+
319+
first := makeMessage("2020-05-13T18:55:37.772853839Z INFO Testing stdout logs...\n", container.STDOUT)
320+
second := makeMessage("2020-05-13T18:56:37.772853839Z {\"msg\":\"a complex log message\"}\n", container.STDOUT)
321+
data := append(first, second...)
322+
323+
mockedClient.On("ContainerLogsBetweenDates", mock.Anything, id, mock.Anything, mock.Anything, container.STDALL).
324+
Return(io.NopCloser(bytes.NewReader(data)), nil).
325+
Once()
326+
mockedClient.On("FindContainer", mock.Anything, id).Return(container.Container{ID: id}, nil)
327+
mockedClient.On("Host").Return(container.Host{
328+
ID: "localhost",
329+
})
330+
mockedClient.On("ListContainers", mock.Anything, mock.Anything).Return([]container.Container{
331+
{ID: id, Name: "test", Host: "localhost", State: "running"},
332+
}, nil)
333+
mockedClient.On("ContainerEvents", mock.Anything, mock.AnythingOfType("chan<- container.ContainerEvent")).Return(nil)
334+
335+
handler := createDefaultHandler(mockedClient)
336+
rr := httptest.NewRecorder()
337+
handler.ServeHTTP(rr, req)
338+
reader := strings.NewReader(regexp.MustCompile(`"time":"[^"]*"`).ReplaceAllString(rr.Body.String(), `"time":"<removed>"`))
339+
abide.AssertReader(t, t.Name(), reader)
340+
mockedClient.AssertExpectations(t)
341+
}
342+
303343
func makeMessage(message string, stream container.StdType) []byte {
304344
data := make([]byte, 8)
305345
binary.BigEndian.PutUint32(data[4:], uint32(len(message)))

0 commit comments

Comments
 (0)