From 83e92cfd6c38493614329fcf94f4274c3682b572 Mon Sep 17 00:00:00 2001 From: xbgmsharp Date: Mon, 31 Mar 2025 13:28:42 +0200 Subject: [PATCH] Add metadata SQL test --- tests/sql/metadata.sql | 32 ++++++++++++++++++++ tests/sql/metadata.sql.output | 56 +++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 tests/sql/metadata.sql create mode 100644 tests/sql/metadata.sql.output diff --git a/tests/sql/metadata.sql b/tests/sql/metadata.sql new file mode 100644 index 0000000..3601da8 --- /dev/null +++ b/tests/sql/metadata.sql @@ -0,0 +1,32 @@ +--------------------------------------------------------------------------- +-- Listing +-- + +-- List current database +select current_database(); + +-- connect to the DB +\c signalk + +-- output display format +\x on + +SELECT v.vessel_id as "vessel_id" FROM auth.vessels v WHERE v.owner_email = 'demo+kapla@openplotter.cloud' \gset +--\echo :"vessel_id" +SELECT set_config('vessel.id', :'vessel_id', false) IS NOT NULL as vessel_id; + +--SELECT * FROM api.metadata m; +\echo 'api.metadata details' +SELECT m.id, m.name, m.mmsi, m.length, m.beam, m.height, m.ship_type, m.plugin_version, m.signalk_version, m.time IS NOT NULL AS time, m.active, configuration, available_keys FROM api.metadata AS m ORDER BY m.name ASC; + +\echo 'api.metadata get configuration' +select configuration from api.metadata WHERE vessel_id = current_setting('vessel.id', false); + +\echo 'api.metadata update configuration' +UPDATE api.metadata SET configuration = '{ "depthKey": "environment.depth.belowTransducer" }' WHERE vessel_id = current_setting('vessel.id', false); + +\echo 'api.metadata get configuration with new value' +select configuration->'depthKey' AS depthKey, configuration->'update_at' IS NOT NULL AS update_at from api.metadata WHERE vessel_id = current_setting('vessel.id', false); + +\echo 'api.metadata get configuration base on update_at value' +select configuration->'depthKey' AS depthKey, configuration->'update_at' IS NOT NULL AS update_at from api.metadata WHERE vessel_id = current_setting('vessel.id', false) AND configuration->>'update_at' = to_char(NOW(), 'YYYY-MM-DD"T"HH24:MI:SS"Z"'); diff --git a/tests/sql/metadata.sql.output b/tests/sql/metadata.sql.output new file mode 100644 index 0000000..fe43246 --- /dev/null +++ b/tests/sql/metadata.sql.output @@ -0,0 +1,56 @@ + current_database +------------------ + signalk +(1 row) + +You are now connected to database "signalk" as user "username". +Expanded display is on. +-[ RECORD 1 ] +vessel_id | t + +api.metadata details +-[ RECORD 1 ]---+---------------- +id | 2 +name | aava +mmsi | 787654321 +length | 12 +beam | 10 +height | 24 +ship_type | 37 +plugin_version | 1.0.2 +signalk_version | 1.20.0 +time | t +active | t +configuration | +available_keys | [] +-[ RECORD 2 ]---+---------------- +id | 1 +name | kapla +mmsi | 123456789 +length | 12 +beam | 10 +height | 24 +ship_type | 36 +plugin_version | 0.0.1 +signalk_version | signalk_version +time | t +active | t +configuration | +available_keys | + +api.metadata get configuration +-[ RECORD 1 ]-+- +configuration | + +api.metadata update configuration +UPDATE 1 +api.metadata get configuration with new value +-[ RECORD 1 ]---------------------------------- +depthkey | "environment.depth.belowTransducer" +update_at | t + +api.metadata get configuration base on update_at value +-[ RECORD 1 ]---------------------------------- +depthkey | "environment.depth.belowTransducer" +update_at | t +