Improve SQL test script
This commit is contained in:
27
src/test/sql/fixtures/4-fixture_article.sql
Normal file
27
src/test/sql/fixtures/4-fixture_article.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
create or replace function fixture_article(in name text default 'love', _citizen_id uuid default fixture_citizen(), _version_id uuid default uuid_generate_v4(), out _article_id uuid)
|
||||
language plpgsql as
|
||||
$$
|
||||
declare
|
||||
created_article json := $json$
|
||||
{
|
||||
"title": "Love the world",
|
||||
"anonymous": false,
|
||||
"content": "bla bal bla",
|
||||
"tags": [
|
||||
"love",
|
||||
"test"
|
||||
],
|
||||
"draft":false
|
||||
}
|
||||
$json$;
|
||||
begin
|
||||
if (name = 'love') then
|
||||
-- set citizen id to article
|
||||
created_article := jsonb_set(created_article::jsonb, '{created_by}'::text[], jsonb_build_object('id', _citizen_id::text), true)::json;
|
||||
created_article := jsonb_set(created_article::jsonb, '{version_id}'::text[], to_jsonb(_version_id), true)::json;
|
||||
assert created_article#>>'{created_by, id}' = _citizen_id::text, format('citizenId in article must be the same as citizen, %s != %s', created_article#>>'{created_by, id}', _citizen_id::text);
|
||||
-- upsert article
|
||||
select (a->>'id')::uuid into _article_id from upsert_article(created_article) a;
|
||||
end if;
|
||||
end;
|
||||
$$;
|
||||
Reference in New Issue
Block a user