feat(transaction-recurring): #135 prohibit deletion of treasure chests if referenced
This commit was merged in pull request #139.
This commit is contained in:
51
test/treasure_chest_it_test.go
Normal file
51
test/treasure_chest_it_test.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package test_test
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTreasureChestShouldNotDeleteIfTransactionRecurringExists(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
db, baseUrl, ctx := setupIntegrationTest(t)
|
||||
_, csrfToken, sessionId := createValidUserSession(t, db, baseUrl)
|
||||
|
||||
formData := url.Values{
|
||||
"name": {"Test Treasure Chest Parent"},
|
||||
}
|
||||
resp := doAuthenticatedRequest(t, ctx, http.MethodPost, baseUrl+"/treasurechest/new", formData, csrfToken, sessionId)
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
var parentId string
|
||||
err := db.Get(&parentId, "SELECT id FROM treasure_chest")
|
||||
require.NoError(t, err)
|
||||
|
||||
formData = url.Values{
|
||||
"name": {"Test Treasure Chest Child"},
|
||||
"parent-id": {parentId},
|
||||
}
|
||||
resp = doAuthenticatedRequest(t, ctx, http.MethodPost, baseUrl+"/treasurechest/new", formData, csrfToken, sessionId)
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
var childId string
|
||||
err = db.Get(&childId, "SELECT id FROM treasure_chest WHERE parent_id = ?", parentId)
|
||||
require.NoError(t, err)
|
||||
|
||||
formData = url.Values{
|
||||
"treasure-chest-id": {childId},
|
||||
"value": {"100"},
|
||||
"interval-months": {"1"},
|
||||
"party": {"Test Party"},
|
||||
}
|
||||
resp = doAuthenticatedRequest(t, ctx, http.MethodPost, baseUrl+"/transaction-recurring/new", formData, csrfToken, sessionId)
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
resp = doAuthenticatedRequest(t, ctx, http.MethodDelete, baseUrl+"/treasurechest/"+childId, nil, csrfToken, sessionId)
|
||||
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
assert.Contains(t, resp.Header.Get("Hx-Trigger"), "cannot delete treasure chest with existing recurring transactions")
|
||||
}
|
||||
Reference in New Issue
Block a user