Skip to content

Commit 56160c6

Browse files
authored
Added some more tests (#22)
1 parent 2032d69 commit 56160c6

File tree

4 files changed

+67
-3
lines changed

4 files changed

+67
-3
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ dist/
1212

1313
# Output of the go coverage tool, specifically when used with LiteIDE
1414
*.out
15+
*.cov
16+
cover.html
1517

1618
# Dependency directories (remove the comment below to include it)
1719
# vendor/

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ run_short_tests:
2424

2525
.PHONY: run_tests
2626
run_tests: env_up
27-
go test -count=1 -v -race ./...
27+
go test -count=1 -v -race -covermode=atomic -coverprofile=profile.cov ./...
28+
go tool cover -func=profile.cov
29+
go tool cover -html=profile.cov -o cover.html
30+
rm profile.cov
2831

2932
.PHONY: env_up
3033
env_up:

internal/adapter/zerolog_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ func Test_parseLevelAndMsg(t *testing.T) {
4444
wantLvl: zerolog.InfoLevel,
4545
wantMsg: "[info message",
4646
},
47+
{
48+
name: "EmptyMessage",
49+
arg: []byte(""),
50+
wantLvl: zerolog.InfoLevel,
51+
wantMsg: "",
52+
},
4753
}
4854

4955
for _, tt := range tests {

internal/bridge/replicator_test.go

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,6 @@ func (s *bridgeSuite) TestDump() {
169169
require.NoError(t, err)
170170
}
171171

172-
s.init(s.cfg)
173-
174172
go func() {
175173
errors := s.bridge.Run()
176174
for err := range errors {
@@ -322,3 +320,58 @@ func (s *bridgeSuite) TestReconnect() {
322320
assert.NoError(t, err)
323321
}
324322
}
323+
324+
func (s *bridgeSuite) TestRenameColumn() {
325+
t := s.T()
326+
327+
s.init(s.cfg)
328+
329+
go func() {
330+
errors := s.bridge.Run()
331+
for err := range errors {
332+
assert.NoError(t, err)
333+
}
334+
}()
335+
336+
<-s.bridge.canal.WaitDumpDone()
337+
338+
_, err := s.executeSQL("INSERT INTO city.users (username, password, name, email) VALUES (?, ?, ?, ?)", "bob", "12345", "Bob", "bob@email.com")
339+
require.NoError(t, err)
340+
341+
_, err = s.executeSQL("ALTER TABLE city.users CHANGE `name` `new_name` varchar(50)")
342+
require.NoError(t, err)
343+
344+
defer func() {
345+
_, err = s.executeSQL("ALTER TABLE city.users CHANGE `new_name` `name` varchar(50)")
346+
require.NoError(t, err)
347+
}()
348+
349+
_, err = s.executeSQL("INSERT INTO city.users (id, username, password, new_name, email) VALUES (?, ?, ?, ?, ?)", 2, "alice", "123", "Alice", "alice@email.com")
350+
require.NoError(t, err)
351+
352+
err = s.bridge.canal.CatchMasterPos(500 * time.Millisecond)
353+
require.NoError(t, err)
354+
355+
wantRows := uint64(2)
356+
require.Eventually(t, func() bool {
357+
return s.hasSyncedData("users", wantRows)
358+
}, 500*time.Millisecond, 50*time.Millisecond)
359+
360+
got, err := s.executeTNT(&tarantool.Select{
361+
Space: "users",
362+
Key: 2,
363+
})
364+
require.NoError(t, err)
365+
require.NotNil(t, got)
366+
require.NotEmpty(t, got.Data)
367+
require.Len(t, got.Data, 1)
368+
want := []interface{}{2, "alice", "123", "alice@email.com"}
369+
gotTuple := got.Data[0]
370+
require.Len(t, gotTuple, len(want))
371+
for i, v := range want {
372+
require.EqualValues(t, v, gotTuple[i])
373+
}
374+
375+
err = s.bridge.Close()
376+
assert.NoError(t, err)
377+
}

0 commit comments

Comments
 (0)