(t *testing.T)
| 500 | } |
| 501 | |
| 502 | func TestSync_twoway(t *testing.T) { |
| 503 | t.Run("once", func(t *testing.T) { |
| 504 | setup := func(t *testing.T, env testEnv, user database.User) map[string]string { |
| 505 | cliDB := env.DB |
| 506 | |
| 507 | jsBookUUID := apiCreateBook(t, env, user, "js", "adding a js book") |
| 508 | jsNote1UUID := apiCreateNote(t, env, user, jsBookUUID, "js1", "adding js note 1") |
| 509 | cssBookUUID := apiCreateBook(t, env, user, "css", "adding css book") |
| 510 | cssNote1UUID := apiCreateNote(t, env, user, cssBookUUID, "css1", "adding css note 1") |
| 511 | jsNote2UUID := apiCreateNote(t, env, user, jsBookUUID, "js2", "adding js note 2") |
| 512 | cssNote2UUID := apiCreateNote(t, env, user, cssBookUUID, "css2", "adding css note 2") |
| 513 | linuxBookUUID := apiCreateBook(t, env, user, "linux", "adding linux book") |
| 514 | linuxNote1UUID := apiCreateNote(t, env, user, linuxBookUUID, "linux1", "adding linux note 1") |
| 515 | apiPatchNote(t, env, user, jsNote2UUID, fmt.Sprintf(`{"book_uuid": "%s"}`, linuxBookUUID), "moving js note 2 to linux") |
| 516 | apiDeleteNote(t, env, user, jsNote1UUID, "deleting js note 1") |
| 517 | cssNote3UUID := apiCreateNote(t, env, user, cssBookUUID, "css3", "adding css note 3") |
| 518 | bashBookUUID := apiCreateBook(t, env, user, "bash", "adding bash book") |
| 519 | bashNote1UUID := apiCreateNote(t, env, user, bashBookUUID, "bash1", "adding bash note 1") |
| 520 | apiDeleteBook(t, env, user, linuxBookUUID, "deleting linux book") |
| 521 | apiPatchNote(t, env, user, cssNote2UUID, fmt.Sprintf(`{"content": "%s"}`, "css2-edited"), "editing css 2 body") |
| 522 | bashNote2UUID := apiCreateNote(t, env, user, bashBookUUID, "bash2", "adding bash note 2") |
| 523 | linuxBook2UUID := apiCreateBook(t, env, user, "linux", "adding new linux book") |
| 524 | linux2Note1UUID := apiCreateNote(t, env, user, linuxBookUUID, "linux-new-1", "adding linux note 1") |
| 525 | apiDeleteBook(t, env, user, jsBookUUID, "deleting js book") |
| 526 | |
| 527 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "js", "-c", "js3") |
| 528 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "algorithms", "-c", "algorithms1") |
| 529 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "js", "-c", "js4") |
| 530 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "algorithms", "-c", "algorithms2") |
| 531 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "math", "-c", "math1") |
| 532 | |
| 533 | var nid string |
| 534 | cliDatabase.MustScan(t, "getting id of note to remove", cliDB.QueryRow("SELECT rowid FROM notes WHERE body = ?", "js3"), &nid) |
| 535 | |
| 536 | clitest.MustWaitDnoteCmd(t, env.CmdOpts, clitest.ConfirmRemoveBook, cliBinaryName, "remove", "algorithms") |
| 537 | clitest.RunDnoteCmd(t, env.CmdOpts, cliBinaryName, "add", "css", "-c", "css4") |
| 538 | clitest.MustWaitDnoteCmd(t, env.CmdOpts, clitest.ConfirmRemoveNote, cliBinaryName, "remove", "js", nid) |
| 539 | |
| 540 | return map[string]string{ |
| 541 | "jsBookUUID": jsBookUUID, |
| 542 | "jsNote1UUID": jsNote1UUID, |
| 543 | "jsNote2UUID": jsNote2UUID, |
| 544 | "cssBookUUID": cssBookUUID, |
| 545 | "cssNote1UUID": cssNote1UUID, |
| 546 | "cssNote2UUID": cssNote2UUID, |
| 547 | "cssNote3UUID": cssNote3UUID, |
| 548 | "linuxBookUUID": linuxBookUUID, |
| 549 | "linuxNote1UUID": linuxNote1UUID, |
| 550 | "bashBookUUID": bashBookUUID, |
| 551 | "bashNote1UUID": bashNote1UUID, |
| 552 | "bashNote2UUID": bashNote2UUID, |
| 553 | "linuxBook2UUID": linuxBook2UUID, |
| 554 | "linux2Note1UUID": linux2Note1UUID, |
| 555 | } |
| 556 | } |
| 557 | |
| 558 | assert := func(t *testing.T, env testEnv, user database.User, ids map[string]string) { |
| 559 | cliDB := env.DB |
nothing calls this directly
no test coverage detected