Skip to content

Commit f56bb6f

Browse files
committed
Add stats sql unit tests
1 parent d1578e3 commit f56bb6f

2 files changed

Lines changed: 84 additions & 0 deletions

File tree

tests/sql/stats.sql

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---------------------------------------------------------------------------
2+
-- Listing
3+
--
4+
5+
-- List current database
6+
select current_database();
7+
8+
-- connect to the DB
9+
\c signalk
10+
11+
-- output display format
12+
\x on
13+
14+
\echo 'Validate Stats operation'
15+
-- Assign vessel_id var
16+
SELECT v.vessel_id as "vessel_id_kapla" FROM auth.vessels v WHERE v.owner_email = 'demo+kapla@openplotter.cloud' \gset
17+
SELECT v.vessel_id as "vessel_id_aava" FROM auth.vessels v WHERE v.owner_email = 'demo+aava@openplotter.cloud' \gset
18+
19+
-- user_role
20+
SET ROLE user_role;
21+
\echo 'ROLE user_role current_setting'
22+
23+
SELECT set_config('vessel.id', :'vessel_id_kapla', false) IS NOT NULL as vessel_id;
24+
25+
-- Stats logbook and moorages for user
26+
\echo 'Stats logbook and moorages for user kapla'
27+
--SELECT api.stats_fn();
28+
WITH tbl as (SELECT api.stats_fn() as stats)
29+
SELECT tbl.stats->'stats_logs'->>'name' = 'kapla' AS boat_name,
30+
(tbl.stats->'stats_logs'->>'count')::int = 1 AS logs_count,
31+
(tbl.stats->'stats_logs'->>'max_speed')::numeric = 6.5 AS max_speed,
32+
(tbl.stats->'stats_moorages'->>'home_ports')::int = 1 AS home_ports,
33+
(tbl.stats->'stats_moorages'->>'unique_moorages')::numeric = 5 AS unique_moorages,
34+
(tbl.stats->'moorages_top_countries') = '["fi"]' AS moorages_top_countries
35+
FROM tbl;
36+
37+
SELECT set_config('vessel.id', :'vessel_id_aava', false) IS NOT NULL as vessel_id;
38+
39+
-- Stats logbook and moorages for user
40+
\echo 'Stats logbook and moorages for user aava'
41+
--SELECT api.stats_fn();
42+
WITH tbl as (SELECT api.stats_fn() as stats)
43+
SELECT tbl.stats->'stats_logs'->>'name' = 'aava' AS boat_name,
44+
(tbl.stats->'stats_logs'->>'count')::int = 2 AS logs_count,
45+
(tbl.stats->'stats_logs'->>'max_speed')::numeric = 9.5 AS max_speed,
46+
(tbl.stats->'stats_moorages'->>'home_ports')::int = 1 AS home_ports,
47+
(tbl.stats->'stats_moorages'->>'unique_moorages')::numeric = 4 AS unique_moorages,
48+
(tbl.stats->'moorages_top_countries') = '["ee"]' AS moorages_top_countries
49+
FROM tbl;
50+

tests/sql/stats.sql.output

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
current_database
2+
------------------
3+
signalk
4+
(1 row)
5+
6+
You are now connected to database "signalk" as user "username".
7+
Expanded display is on.
8+
Validate Stats operation
9+
SET
10+
ROLE user_role current_setting
11+
-[ RECORD 1 ]
12+
vessel_id | t
13+
14+
Stats logbook and moorages for user kapla
15+
-[ RECORD 1 ]----------+--
16+
boat_name | t
17+
logs_count | t
18+
max_speed | t
19+
home_ports | t
20+
unique_moorages | t
21+
moorages_top_countries | t
22+
23+
-[ RECORD 1 ]
24+
vessel_id | t
25+
26+
Stats logbook and moorages for user aava
27+
-[ RECORD 1 ]----------+--
28+
boat_name | t
29+
logs_count | t
30+
max_speed | t
31+
home_ports | t
32+
unique_moorages | t
33+
moorages_top_countries | t
34+

0 commit comments

Comments
 (0)