feat(dolt): auto-commit write commands and set explicit commit authors (#1270)
Adds Dolt auto-commit functionality for write commands and sets explicit commit authors. Includes fix for race condition in commandDidWrite (converted to atomic.Bool). Original PR: #1267 by @coffeegoddd Co-authored-by: Dustin Brown <dustin@dolthub.com>
This commit is contained in:
40
cmd/bd/dolt_autocommit_test.go
Normal file
40
cmd/bd/dolt_autocommit_test.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFormatDoltAutoCommitMessage(t *testing.T) {
|
||||
msg := formatDoltAutoCommitMessage("update", "alice", []string{"bd-2", "bd-1", "bd-2", "", "bd-3"})
|
||||
if msg != "bd: update (auto-commit) by alice [bd-1, bd-2, bd-3]" {
|
||||
t.Fatalf("unexpected message: %q", msg)
|
||||
}
|
||||
|
||||
// Caps IDs (max 5) and sorts
|
||||
msg = formatDoltAutoCommitMessage("create", "bob", []string{"z-9", "a-1", "m-3", "b-2", "c-4", "d-5", "e-6"})
|
||||
if msg != "bd: create (auto-commit) by bob [a-1, b-2, c-4, d-5, e-6]" {
|
||||
t.Fatalf("unexpected capped message: %q", msg)
|
||||
}
|
||||
|
||||
// Empty command/actor fallbacks
|
||||
msg = formatDoltAutoCommitMessage("", "", nil)
|
||||
if msg != "bd: write (auto-commit) by unknown" {
|
||||
t.Fatalf("unexpected fallback message: %q", msg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsDoltNothingToCommit(t *testing.T) {
|
||||
if isDoltNothingToCommit(nil) {
|
||||
t.Fatal("nil error should not be treated as nothing-to-commit")
|
||||
}
|
||||
if !isDoltNothingToCommit(errors.New("nothing to commit")) {
|
||||
t.Fatal("expected nothing-to-commit to be detected")
|
||||
}
|
||||
if !isDoltNothingToCommit(errors.New("No changes to commit")) {
|
||||
t.Fatal("expected no-changes-to-commit to be detected")
|
||||
}
|
||||
if isDoltNothingToCommit(errors.New("permission denied")) {
|
||||
t.Fatal("unexpected classification")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user