feat: upload audio, get a private Swedish transcript, discuss it (#33, ADR-033) #39
@@ -54,6 +54,24 @@ func TestOf_ReducesAnErrorToAKindAndNeverItsText(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type sqlErr struct{}
|
||||||
|
|
||||||
|
func (sqlErr) Error() string {
|
||||||
|
return `ERROR: invalid input syntax for type json: "Anders ansvarar för virket"`
|
||||||
|
}
|
||||||
|
func (sqlErr) SQLState() string { return "22P02" }
|
||||||
|
|
||||||
|
func TestOf_ADatabaseErrorIsReducedToItsSQLStateNeverItsMessage(t *testing.T) {
|
||||||
|
// A Postgres error can quote the offending value, which for a transcript row is
|
||||||
|
// transcript text. The five-character SQLSTATE is a fixed vocabulary (fourth review).
|
||||||
|
err := fmt.Errorf("store: complete upload: %w", sqlErr{})
|
||||||
|
|
||||||
|
got := errkind.Of(err)
|
||||||
|
|
||||||
|
assert.Equal(t, "sql_22P02", got)
|
||||||
|
assert.NotContains(t, got, "Anders")
|
||||||
|
}
|
||||||
|
|
||||||
func TestOf_AKindCarriesNoWordFromTheError(t *testing.T) {
|
func TestOf_AKindCarriesNoWordFromTheError(t *testing.T) {
|
||||||
err := fmt.Errorf("convert /spool/upload-555: %w", errors.New("Anders ansvarar för virket"))
|
err := fmt.Errorf("convert /spool/upload-555: %w", errors.New("Anders ansvarar för virket"))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user