(t *testing.T)
| 3506 | } |
| 3507 | |
| 3508 | func TestFullSync(t *testing.T) { |
| 3509 | t.Run("consecutively with stepSync", func(t *testing.T) { |
| 3510 | setup := func(t *testing.T, env testEnv, user database.User) map[string]string { |
| 3511 | jsBookUUID := apiCreateBook(t, env, user, "js", "adding a js book") |
| 3512 | jsNote1UUID := apiCreateNote(t, env, user, jsBookUUID, "js1", "adding js note 1") |
| 3513 | |
| 3514 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "css", "-c", "css1") |
| 3515 | |
| 3516 | return map[string]string{ |
| 3517 | "jsBookUUID": jsBookUUID, |
| 3518 | "jsNote1UUID": jsNote1UUID, |
| 3519 | } |
| 3520 | } |
| 3521 | |
| 3522 | assert := func(t *testing.T, env testEnv, user database.User, ids map[string]string) { |
| 3523 | cliDB := env.DB |
| 3524 | apiDB := env.ServerDB |
| 3525 | |
| 3526 | checkState(t, env.DB, user, env.ServerDB, systemState{ |
| 3527 | clientNoteCount: 2, |
| 3528 | clientBookCount: 2, |
| 3529 | clientLastMaxUSN: 4, |
| 3530 | clientLastSyncAt: serverTime.Unix(), |
| 3531 | serverNoteCount: 2, |
| 3532 | serverBookCount: 2, |
| 3533 | serverUserMaxUSN: 4, |
| 3534 | }) |
| 3535 | |
| 3536 | // test client |
| 3537 | var cliNote1JS, cliNote1CSS cliDatabase.Note |
| 3538 | var cliBookJS, cliBookCSS cliDatabase.Book |
| 3539 | cliDatabase.MustScan(t, "finding cliNote1JS", cliDB.QueryRow("SELECT uuid, body, usn FROM notes WHERE body = ?", "js1"), &cliNote1JS.UUID, &cliNote1JS.Body, &cliNote1JS.USN) |
| 3540 | cliDatabase.MustScan(t, "finding cliNote1CSS", cliDB.QueryRow("SELECT uuid, body, usn FROM notes WHERE body = ?", "css1"), &cliNote1CSS.UUID, &cliNote1CSS.Body, &cliNote1CSS.USN) |
| 3541 | cliDatabase.MustScan(t, "finding cliBookJS", cliDB.QueryRow("SELECT uuid, label, usn FROM books WHERE label = ?", "js"), &cliBookJS.UUID, &cliBookJS.Label, &cliBookJS.USN) |
| 3542 | cliDatabase.MustScan(t, "finding cliBookCSS", cliDB.QueryRow("SELECT uuid, label, usn FROM books WHERE label = ?", "css"), &cliBookCSS.UUID, &cliBookCSS.Label, &cliBookCSS.USN) |
| 3543 | |
| 3544 | // test usn |
| 3545 | assert.NotEqual(t, cliNote1JS.USN, 0, "cliNote1JS USN mismatch") |
| 3546 | assert.NotEqual(t, cliNote1CSS.USN, 0, "cliNote1CSS USN mismatch") |
| 3547 | assert.NotEqual(t, cliBookJS.USN, 0, "cliBookJS USN mismatch") |
| 3548 | assert.NotEqual(t, cliBookCSS.USN, 0, "cliBookCSS USN mismatch") |
| 3549 | // assert on bodys and labels |
| 3550 | assert.Equal(t, cliNote1JS.Body, "js1", "cliNote1JS Body mismatch") |
| 3551 | assert.Equal(t, cliNote1CSS.Body, "css1", "cliNote1CSS Body mismatch") |
| 3552 | assert.Equal(t, cliBookJS.Label, "js", "cliBookJS Label mismatch") |
| 3553 | assert.Equal(t, cliBookCSS.Label, "css", "cliBookCSS Label mismatch") |
| 3554 | // assert on deleted |
| 3555 | assert.Equal(t, cliNote1JS.Deleted, false, "cliNote1JS Deleted mismatch") |
| 3556 | assert.Equal(t, cliNote1CSS.Deleted, false, "cliNote1CSS Deleted mismatch") |
| 3557 | assert.Equal(t, cliBookJS.Deleted, false, "cliBookJS Deleted mismatch") |
| 3558 | assert.Equal(t, cliBookCSS.Deleted, false, "cliBookCSS Deleted mismatch") |
| 3559 | |
| 3560 | // test server |
| 3561 | var apiNote1JS, apiNote1CSS database.Note |
| 3562 | apitest.MustExec(t, apiDB.Where("user_id = ? AND uuid = ?", user.ID, ids["jsNote1UUID"]).First(&apiNote1JS), "finding api js note 1") |
| 3563 | apitest.MustExec(t, apiDB.Where("user_id = ? AND uuid = ?", user.ID, cliNote1CSS.UUID).First(&apiNote1CSS), "finding api css note 1") |
| 3564 | var apiBookJS, apiBookCSS database.Book |
| 3565 | apitest.MustExec(t, apiDB.Where("user_id = ? AND uuid = ?", user.ID, ids["jsBookUUID"]).First(&apiBookJS), "finding api js book") |
nothing calls this directly
no test coverage detected