]> git.giacomolli.uk - onechat/blob - layout_test.go
Remove the warm-up request after the turns
[onechat] / layout_test.go
1 package main
2
3 import (
4         "path/filepath"
5         "testing"
6
7         "github.com/stretchr/testify/require"
8 )
9
10 func TestViewLayoutKeepsTheMessagesItSent(t *testing.T) {
11         path := filepath.Join(t.TempDir(), layoutFileName)
12         layout, err := loadLayout(path)
13         require.NoError(t, err)
14
15         texts, err := layout.Split(nil)
16         require.NoError(t, err)
17         require.Equal(t, []string{"<chat>\n"}, texts)
18
19         texts, err = layout.Split([]string{"0+1|a\n", "1+1|b\n"})
20         require.NoError(t, err)
21         require.Equal(t, []string{"<chat>\n", "0+1|a\n1+1|b\n"}, texts)
22
23         // The same lines give the same messages, also after a restart.
24         layout, err = loadLayout(path)
25         require.NoError(t, err)
26
27         texts, err = layout.Split([]string{"0+1|a\n", "1+1|b\n"})
28         require.NoError(t, err)
29         require.Equal(t, []string{"<chat>\n", "0+1|a\n1+1|b\n"}, texts)
30
31         texts, err = layout.Split([]string{"0+1|a\n", "1+1|b\n", "2+1|c\n"})
32         require.NoError(t, err)
33         require.Equal(t, []string{"<chat>\n", "0+1|a\n1+1|b\n", "2+1|c\n"}, texts)
34 }
35
36 func TestViewLayoutStartsAgainAtAChangedMessage(t *testing.T) {
37         layout, err := loadLayout(filepath.Join(t.TempDir(), layoutFileName))
38         require.NoError(t, err)
39
40         _, err = layout.Split([]string{"0+1|a\n"})
41         require.NoError(t, err)
42
43         _, err = layout.Split([]string{"0+1|a\n", "1+1|b\n", "2+1|c\n"})
44         require.NoError(t, err)
45
46         // A batch merges lines 1 and 2, so the second message changes, and the
47         // rest becomes one new message.
48         texts, err := layout.Split([]string{"0+1|a\n", "1+2|b c\n", "3+1|d\n"})
49         require.NoError(t, err)
50         require.Equal(t, []string{"<chat>\n0+1|a\n", "1+2|b c\n3+1|d\n"}, texts)
51
52         // A view that lost lines starts again with one message.
53         texts, err = layout.Split([]string{"0+4|all\n"})
54         require.NoError(t, err)
55         require.Equal(t, []string{"<chat>\n0+4|all\n"}, texts)
56 }