MCPcopy
hub / github.com/pocketbase/pocketbase / TestRecordDelete

Function TestRecordDelete

core/record_model_test.go:2202–2291  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2200}
2201
2202func TestRecordDelete(t *testing.T) {
2203 t.Parallel()
2204
2205 app, _ := tests.NewTestApp()
2206 defer app.Cleanup()
2207
2208 demoCollection, _ := app.FindCollectionByNameOrId("demo2")
2209
2210 // delete unsaved record
2211 // ---
2212 newRec := core.NewRecord(demoCollection)
2213 if err := app.Delete(newRec); err == nil {
2214 t.Fatal("(newRec) Didn't expect to succeed deleting unsaved record")
2215 }
2216
2217 // delete view record
2218 // ---
2219 viewRec, _ := app.FindRecordById("view2", "84nmscqy84lsi1t")
2220 if err := app.Delete(viewRec); err == nil {
2221 t.Fatal("(viewRec) Didn't expect to succeed deleting view record")
2222 }
2223 // check if it still exists
2224 viewRec, _ = app.FindRecordById(viewRec.Collection().Id, viewRec.Id)
2225 if viewRec == nil {
2226 t.Fatal("(viewRec) Expected view record to still exists")
2227 }
2228
2229 // delete existing record + external auths
2230 // ---
2231 rec1, _ := app.FindRecordById("users", "4q1xlclmfloku33")
2232 if err := app.Delete(rec1); err != nil {
2233 t.Fatalf("(rec1) Expected nil, got error %v", err)
2234 }
2235 // check if it was really deleted
2236 if refreshed, _ := app.FindRecordById(rec1.Collection().Id, rec1.Id); refreshed != nil {
2237 t.Fatalf("(rec1) Expected record to be deleted, got %v", refreshed)
2238 }
2239 // check if the external auths were deleted
2240 if auths, _ := app.FindAllExternalAuthsByRecord(rec1); len(auths) > 0 {
2241 t.Fatalf("(rec1) Expected external auths to be deleted, got %v", auths)
2242 }
2243
2244 // delete existing record while being part of a non-cascade required relation
2245 // ---
2246 rec2, _ := app.FindRecordById("demo3", "7nwo8tuiatetxdm")
2247 if err := app.Delete(rec2); err == nil {
2248 t.Fatalf("(rec2) Expected error, got nil")
2249 }
2250
2251 // delete existing record + cascade
2252 // ---
2253 calledQueries := []string{}
2254 app.NonconcurrentDB().(*dbx.DB).QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) {
2255 calledQueries = append(calledQueries, sql)
2256 }
2257 app.ConcurrentDB().(*dbx.DB).QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) {
2258 calledQueries = append(calledQueries, sql)
2259 }

Callers

nothing calls this directly

Calls 10

CleanupMethod · 0.95
NewTestAppFunction · 0.92
NewRecordFunction · 0.92
CollectionMethod · 0.80
DeleteMethod · 0.65
FindRecordByIdMethod · 0.65
NonconcurrentDBMethod · 0.65
ConcurrentDBMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…