-- Тесты chk.chk_check_delete — по func_specs/chk_check_delete.md (db-tst-6: № = строке таблицы). -- Запуск: psql -d <тестовая база> -f test_chk_check_delete.psql (одна транзакция, откат в конце). BEGIN; DO $$ DECLARE v_id int; v_count int; BEGIN -- фикстуры TEST-: справочники вне диапазона сидированных значений INSERT INTO chk.chk_type (id, name) VALUES (990001, 'TEST-тип') ON CONFLICT (id) DO NOTHING; INSERT INTO chk.chk_status (id, name) VALUES (990001, 'TEST-статус') ON CONFLICT (id) DO NOTHING; v_id := chk.chk_check_insert(date '2026-04-01', 990001, 990001, 'TEST-smev', 'TEST-org', NULL, NULL); -- №1: существующая проверка — возврат 1, записи в таблице нет v_count := chk.chk_check_delete(v_id); SELECT count(*) INTO v_count FROM chk.chk_check WHERE id = v_id; IF v_count = 0 THEN RAISE NOTICE 'PASS chk.chk_check_delete #1'; ELSE RAISE EXCEPTION 'FAIL chk.chk_check_delete #1: запись не удалена'; END IF; -- №2: несуществующий id — возврат 0 v_count := chk.chk_check_delete(999999999); IF v_count = 0 THEN RAISE NOTICE 'PASS chk.chk_check_delete #2'; ELSE RAISE EXCEPTION 'FAIL chk.chk_check_delete #2: ожидался 0, получено %', v_count; END IF; -- удаление фикстур DELETE FROM chk.chk_type WHERE id = 990001; DELETE FROM chk.chk_status WHERE id = 990001; RAISE NOTICE 'ИТОГ chk.chk_check_delete: все проверки выполнены'; END; $$; ROLLBACK;