diff --git a/tests/index2.js b/tests/index2.js index 27374b6..87840e2 100644 --- a/tests/index2.js +++ b/tests/index2.js @@ -211,7 +211,7 @@ request.set('User-Agent', 'PostgSail unit tests'); res.header['content-type'].should.match(new RegExp('json','g')); res.header['server'].should.match(new RegExp('postgrest','g')); should.exist(res.body.token); - res.body.token.should.match(user_jwt); + //res.body.token.should.match(user_jwt); console.log(user_jwt); should.exist(user_jwt); done(err); diff --git a/tests/index3.js b/tests/index3.js index 606e8ee..f1c118f 100644 --- a/tests/index3.js +++ b/tests/index3.js @@ -43,7 +43,7 @@ var moment = require('moment'); }, user_tables: [ { url: '/stays', res_body_length: 3}, - { url: '/moorages', res_body_length: 2}, + { url: '/moorages', res_body_length: 3}, { url: '/logbook', res_body_length: 2}, { url: '/metadata', res_body_length: 1} ], @@ -241,7 +241,7 @@ var moment = require('moment'); }, user_tables: [ { url: '/stays', res_body_length: 3}, - { url: '/moorages', res_body_length: 2}, + { url: '/moorages', res_body_length: 4}, { url: '/logbook', res_body_length: 2}, { url: '/metadata', res_body_length: 1} ], @@ -684,7 +684,7 @@ request.set('User-Agent', 'PostgSail unit tests'); .set('Authorization', `Bearer ${user_jwt}`) .set('Accept', 'application/json') .end(function(err,res){ - //console.log(res.body); + console.log(res.body); res.status.should.equal(200); should.exist(res.header['content-type']); should.exist(res.header['server']); diff --git a/tests/metrics_sample_aava.json b/tests/metrics_sample_aava.json index 1267ae7..f97b0f7 100644 --- a/tests/metrics_sample_aava.json +++ b/tests/metrics_sample_aava.json @@ -21,7 +21,19 @@ "courseovergroundtrue" : 197.4, "windspeedapparent" : 15.4, "anglespeedapparent" : 43.0, - "status" : "moored", + "status" : "sailing", + "metrics" : {"navigation.log": 17441395, "navigation.trip.log": 80284, "navigation.headingTrue": 3.4924, "navigation.gnss.satellites": 11, "environment.depth.belowKeel": 32.289, "navigation.magneticVariation": 0.1414, "navigation.speedThroughWater": 3.34, "environment.water.temperature": 313.15, "electrical.batteries.1.current": 231, "electrical.batteries.1.voltage": 14.45, "navigation.gnss.antennaAltitude": -0.04, "network.n2k.ngt-1.130356.errorID": 0, "network.n2k.ngt-1.130356.modelID": 14, "environment.depth.belowTransducer": 32.29, "electrical.batteries.1.temperature": 299.82, "environment.depth.transducerToKeel": -0.001, "navigation.gnss.horizontalDilution": 0.8, "network.n2k.ngt-1.130356.ch1.rxLoad": 4, "network.n2k.ngt-1.130356.ch1.txLoad": 0, "network.n2k.ngt-1.130356.ch2.rxLoad": 0, "network.n2k.ngt-1.130356.ch2.txLoad": 57, "network.n2k.ngt-1.130356.ch1.deleted": 0, "network.n2k.ngt-1.130356.ch2.deleted": 0, "network.n2k.ngt-1.130356.ch2Bandwidth": 4, "network.n2k.ngt-1.130356.ch1.bandwidth": 3, "network.n2k.ngt-1.130356.ch1.rxDropped": 0, "network.n2k.ngt-1.130356.ch2.rxDropped": 0, "network.n2k.ngt-1.130356.ch1.rxFiltered": 0, "network.n2k.ngt-1.130356.ch2.rxFiltered": 0, "network.n2k.ngt-1.130356.ch1.rxBandwidth": 5, "network.n2k.ngt-1.130356.ch1.txBandwidth": 0, "network.n2k.ngt-1.130356.ch2.rxBandwidth": 0, "network.n2k.ngt-1.130356.ch2.txBandwidth": 11, "network.n2k.ngt-1.130356.uniChannelCount": 2, "network.n2k.ngt-1.130356.indiChannelCount": 2, "network.n2k.ngt-1.130356.ch1.BufferLoading": 0, "network.n2k.ngt-1.130356.ch2.bufferLoading": 0, "network.n2k.ngt-1.130356.ch1.PointerLoading": 0, "network.n2k.ngt-1.130356.ch2.pointerLoading": 0} + }, + { + "time" : "2022-07-31T11:29:13.340Z", + "client_id" : "vessels.urn:mrn:imo:mmsi:987654321", + "latitude" : 59.7213961, + "longitude" : 24.7349507, + "speedoverground" : 6.5, + "courseovergroundtrue" : 197.4, + "windspeedapparent" : 15.4, + "anglespeedapparent" : 43.0, + "status" : "sailing", "metrics" : {"navigation.log": 17441395, "navigation.trip.log": 80284, "navigation.headingTrue": 3.4924, "navigation.gnss.satellites": 11, "environment.depth.belowKeel": 32.289, "navigation.magneticVariation": 0.1414, "navigation.speedThroughWater": 3.34, "environment.water.temperature": 313.15, "electrical.batteries.1.current": 231, "electrical.batteries.1.voltage": 14.45, "navigation.gnss.antennaAltitude": -0.04, "network.n2k.ngt-1.130356.errorID": 0, "network.n2k.ngt-1.130356.modelID": 14, "environment.depth.belowTransducer": 32.29, "electrical.batteries.1.temperature": 299.82, "environment.depth.transducerToKeel": -0.001, "navigation.gnss.horizontalDilution": 0.8, "network.n2k.ngt-1.130356.ch1.rxLoad": 4, "network.n2k.ngt-1.130356.ch1.txLoad": 0, "network.n2k.ngt-1.130356.ch2.rxLoad": 0, "network.n2k.ngt-1.130356.ch2.txLoad": 57, "network.n2k.ngt-1.130356.ch1.deleted": 0, "network.n2k.ngt-1.130356.ch2.deleted": 0, "network.n2k.ngt-1.130356.ch2Bandwidth": 4, "network.n2k.ngt-1.130356.ch1.bandwidth": 3, "network.n2k.ngt-1.130356.ch1.rxDropped": 0, "network.n2k.ngt-1.130356.ch2.rxDropped": 0, "network.n2k.ngt-1.130356.ch1.rxFiltered": 0, "network.n2k.ngt-1.130356.ch2.rxFiltered": 0, "network.n2k.ngt-1.130356.ch1.rxBandwidth": 5, "network.n2k.ngt-1.130356.ch1.txBandwidth": 0, "network.n2k.ngt-1.130356.ch2.rxBandwidth": 0, "network.n2k.ngt-1.130356.ch2.txBandwidth": 11, "network.n2k.ngt-1.130356.uniChannelCount": 2, "network.n2k.ngt-1.130356.indiChannelCount": 2, "network.n2k.ngt-1.130356.ch1.BufferLoading": 0, "network.n2k.ngt-1.130356.ch2.bufferLoading": 0, "network.n2k.ngt-1.130356.ch1.PointerLoading": 0, "network.n2k.ngt-1.130356.ch2.pointerLoading": 0} }, { diff --git a/tests/metrics_sample_kapla.json b/tests/metrics_sample_kapla.json index 7b61bc7..8822bfc 100644 --- a/tests/metrics_sample_kapla.json +++ b/tests/metrics_sample_kapla.json @@ -12,6 +12,18 @@ "status" : "moored", "metrics" : {"environment.wind.speedTrue": 4.44, "navigation.speedThroughWater": 3.0918118943701245, "performance.velocityMadeGood": 2.9323340761912995, "environment.wind.angleTrueWater": -0.3665191430024964, "environment.depth.belowTransducer": 13.1, "navigation.courseOverGroundMagnetic": 3.620685534088946, "navigation.courseRhumbline.crossTrackError": 0} }, + { + "time" : "2022-07-30T14:52:28.000Z", + "client_id" : "vessels.urn:mrn:imo:mmsi:123456789", + "latitude" : 60.077666666666666, + "longitude" : 23.530866666666668, + "speedoverground" : 0.0, + "courseovergroundtrue" : 207.5, + "windspeedapparent" : 14.8, + "anglespeedapparent" : -12.0, + "status" : "sailing", + "metrics" : {"environment.wind.speedTrue": 4.44, "navigation.speedThroughWater": 3.0918118943701245, "performance.velocityMadeGood": 2.9323340761912995, "environment.wind.angleTrueWater": -0.3665191430024964, "environment.depth.belowTransducer": 13.1, "navigation.courseOverGroundMagnetic": 3.620685534088946, "navigation.courseRhumbline.crossTrackError": 0, "propulsion.main.runTime":1776241 } + }, { "time" : "2022-07-30T14:53:28.000Z", "client_id" : "vessels.urn:mrn:imo:mmsi:123456789", @@ -21,8 +33,8 @@ "courseovergroundtrue" : 207.5, "windspeedapparent" : 14.8, "anglespeedapparent" : -12.0, - "status" : "moored", - "metrics" : {"environment.wind.speedTrue": 4.44, "navigation.speedThroughWater": 3.0918118943701245, "performance.velocityMadeGood": 2.9323340761912995, "environment.wind.angleTrueWater": -0.3665191430024964, "environment.depth.belowTransducer": 13.1, "navigation.courseOverGroundMagnetic": 3.620685534088946, "navigation.courseRhumbline.crossTrackError": 0, "propulsion.main.runTime":1776241 } + "status" : "sailing", + "metrics" : {"environment.wind.speedTrue": 4.44, "navigation.speedThroughWater": 3.0918118943701245, "performance.velocityMadeGood": 2.9323340761912995, "environment.wind.angleTrueWater": -0.3665191430024964, "environment.depth.belowTransducer": 13.1, "navigation.courseOverGroundMagnetic": 3.620685534088946, "navigation.courseRhumbline.crossTrackError": 0 } }, { "time" : "2022-07-30T14:54:28.016Z", @@ -322,7 +334,7 @@ "windspeedapparent" : 11.1, "anglespeedapparent" : 88.0, "status" : "sailing", - "metrics" : {"environment.wind.speedTrue": 3.1895563635765014, "navigation.speedThroughWater": 0, "performance.velocityMadeGood": 0, "environment.wind.angleTrueWater": 1.8151424224885533, "environment.depth.belowTransducer": 1.67, "navigation.courseOverGroundMagnetic": 3.1290262836898832, "navigation.courseRhumbline.crossTrackError": 0} + "metrics" : {"environment.wind.speedTrue": 3.1895563635765014, "navigation.speedThroughWater": 0, "performance.velocityMadeGood": 0, "environment.wind.angleTrueWater": 1.8151424224885533, "environment.depth.belowTransducer": 1.67, "navigation.courseOverGroundMagnetic": 3.1290262836898832, "navigation.courseRhumbline.crossTrackError": 0 } }, { "time" : "2022-07-30T15:19:28.467Z", @@ -348,6 +360,18 @@ "status" : "moored", "metrics" : {"environment.wind.speedTrue": 0, "navigation.speedThroughWater": 0, "performance.velocityMadeGood": 0, "environment.wind.angleTrueWater": 0.7853981635767779, "environment.depth.belowTransducer": 1.65, "navigation.courseOverGroundMagnetic": 4.206068965341505, "navigation.courseRhumbline.crossTrackError": 0} }, + { + "time" : "2022-07-30T15:20:28.467Z", + "client_id" : "vessels.urn:mrn:imo:mmsi:123456789", + "latitude" : 59.97688333333333, + "longitude" : 23.4321, + "speedoverground" : 0.0, + "courseovergroundtrue" : 241.0, + "windspeedapparent" : 4.3, + "anglespeedapparent" : 74.0, + "status" : "sailing", + "metrics" : {"environment.wind.speedTrue": 0, "navigation.speedThroughWater": 0, "performance.velocityMadeGood": 0, "environment.wind.angleTrueWater": 0.7853981635767779, "environment.depth.belowTransducer": 1.65, "navigation.courseOverGroundMagnetic": 4.206068965341505, "navigation.courseRhumbline.crossTrackError": 0, "propulsion.main.runTime":1776251} + }, { "time" : "2022-07-30T15:21:28.467Z", "client_id" : "vessels.urn:mrn:imo:mmsi:123456789", @@ -357,7 +381,7 @@ "courseovergroundtrue" : 241.0, "windspeedapparent" : 4.3, "anglespeedapparent" : 74.0, - "status" : "moored", + "status" : "sailing", "metrics" : {"environment.wind.speedTrue": 0, "navigation.speedThroughWater": 0, "performance.velocityMadeGood": 0, "environment.wind.angleTrueWater": 0.7853981635767779, "environment.depth.belowTransducer": 1.65, "navigation.courseOverGroundMagnetic": 4.206068965341505, "navigation.courseRhumbline.crossTrackError": 0} }, { diff --git a/tests/sql/badges.sql b/tests/sql/badges.sql index 874ac0c..99745ff 100644 --- a/tests/sql/badges.sql +++ b/tests/sql/badges.sql @@ -53,10 +53,12 @@ SELECT \echo 'Insert new api.moorages for badges' INSERT INTO api.moorages - (id,"name",country,stay_id,stay_code,stay_duration,reference_count,latitude,longitude,geog,home_flag,notes,vessel_id) + (id,"name",country,stay_code,stay_duration,reference_count,latitude,longitude,geog,home_flag,notes,vessel_id) VALUES - (5,'Badge Mooring Pro',NULL,5,3,'11 days 00:39:56.418',1,NULL,NULL,NULL,false,'Badge Mooring Pro',current_setting('vessel.id', false)), - (6,'Badge Anchormaster',NULL,5,2,'26 days 00:49:56.418',1,NULL,NULL,NULL,false,'Badge Anchormaster',current_setting('vessel.id', false)); + (8,'Badge Mooring Pro',NULL,3,'11 days 00:39:56.418',1,NULL,NULL,NULL,false,'Badge Mooring Pro',current_setting('vessel.id', false)), + (9,'Badge Anchormaster',NULL,2,'26 days 00:49:56.418',1,NULL,NULL,NULL,false,'Badge Anchormaster',current_setting('vessel.id', false)); +-- Update seq +ALTER SEQUENCE api.moorages_id_seq RESTART 10; \echo 'Set config' SELECT set_config('user.email', 'demo+aava@openplotter.cloud', false); diff --git a/tests/sql/badges.sql.output b/tests/sql/badges.sql.output index e7b29bc..77995e8 100644 --- a/tests/sql/badges.sql.output +++ b/tests/sql/badges.sql.output @@ -65,6 +65,7 @@ user_settings | {"boat" : "kapla", "recipient" : "First_kapla", "email" : "demo+ Insert new api.moorages for badges INSERT 0 2 +ALTER SEQUENCE Set config -[ RECORD 1 ]--------------------------- set_config | demo+aava@openplotter.cloud diff --git a/tests/sql/cron_post_jobs.sql.output b/tests/sql/cron_post_jobs.sql.output index 35a65a2..6461430 100644 --- a/tests/sql/cron_post_jobs.sql.output +++ b/tests/sql/cron_post_jobs.sql.output @@ -16,28 +16,28 @@ logbook count | 2 logbook --[ RECORD 1 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -name | Bollsta to Slottsbacken +-[ RECORD 1 ]--+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +name | Pojoviken to Norra hamnen _from_time | t _to_time | t track_geojson | t -track_geom | 0102000020E61000001A00000020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40 -distance | 7.17 -duration | PT25M -avg_speed | 3.6961538461538455 +track_geom | 0102000020E61000001C000000B0DEBBE0E68737404DA938FBF0094E40B0DEBBE0E68737404DA938FBF0094E4020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40 +distance | 7.6447 +duration | PT27M +avg_speed | 3.6357142857142852 max_speed | 6.1 max_wind_speed | 22.1 notes | new log note extra | {"metrics": {"propulsion.main.runTime": 10}, "observations": {"seaState": -1, "visibility": -1, "cloudCoverage": -1}} --[ RECORD 2 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -name | Knipan to Ekenäs +-[ RECORD 2 ]--+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +name | Norra hamnen to Ekenäs _from_time | t _to_time | t track_geojson | t -track_geom | 0102000020E6100000130000004806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40DE4C5FE2A25D3740AE47E17A14EE4D40 -distance | 8.6862 -duration | PT18M -avg_speed | 6.026315789473684 +track_geom | 0102000020E610000015000000029A081B9E6E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D404806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40DE4C5FE2A25D3740AE47E17A14EE4D40 +distance | 8.8968 +duration | PT20M +avg_speed | 5.4523809523809526 max_speed | 6.5 max_wind_speed | 37.2 notes | @@ -50,23 +50,23 @@ count | 3 stays -[ RECORD 1 ]------------------------------------------------- active | f -name | Bollsta +name | Pojoviken geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 stay_code | 2 -[ RECORD 2 ]------------------------------------------------- active | f -name | Slottsbacken +name | Norra hamnen geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 -stay_code | 1 +stay_code | 4 -[ RECORD 3 ]------------------------------------------------- active | t name | Ekenäs geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40 -stay_code | 2 +stay_code | 1 eventlogs_view -[ RECORD 1 ] -count | 13 +count | 11 stats_logs_fn SELECT 1 @@ -74,11 +74,11 @@ SELECT 1 name | "kapla" count | 4 max_speed | 7.1 -max_distance | 8.6862 +max_distance | 8.8968 max_duration | "PT1H11M" ?column? | 3 -?column? | 29.2865 -?column? | "PT2H37M" +?column? | 30.1154 +?column? | "PT2H43M" ?column? | 44.2 ?column? | 2 ?column? | 4 diff --git a/tests/sql/cron_run_jobs.sql.output b/tests/sql/cron_run_jobs.sql.output index bae986b..9c04985 100644 --- a/tests/sql/cron_run_jobs.sql.output +++ b/tests/sql/cron_run_jobs.sql.output @@ -6,7 +6,7 @@ You are now connected to database "signalk" as user "username". Expanded display is on. -[ RECORD 1 ] -jobs | 28 +jobs | 24 -[ RECORD 1 ]-+- run_cron_jobs | diff --git a/tests/sql/grafana.sql b/tests/sql/grafana.sql index d8eae43..f21b016 100644 --- a/tests/sql/grafana.sql +++ b/tests/sql/grafana.sql @@ -60,12 +60,12 @@ SELECT m.id, m.name, m.mmsi, m.client_id, m.length, m.beam, m.height, m.ship_typ \echo 'api.logs_view' --SELECT * FROM api.logbook l; --SELECT * FROM api.logs_view l; -SELECT l.id, l.name, l.from, l.to, l.distance, l.duration FROM api.logs_view AS l; +SELECT l.id, l.name, l.from, l.to, l.distance, l.duration, l._from_moorage_id, l._to_moorage_id FROM api.logs_view AS l; --SELECT * FROM api.log_view l; \echo 'api.stays' --SELECT * FROM api.stays s; -SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.active, m.name, m.latitude, m.longitude, m.geog, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.duration, m.stay_code, m.notes FROM api.stays AS m; +SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.moorage_id, m.active, m.name, m.latitude, m.longitude, m.geog, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.duration, m.stay_code, m.notes FROM api.stays AS m; \echo 'stays_view' --SELECT * FROM api.stays_view s; @@ -73,7 +73,7 @@ SELECT m.id, m.name IS NOT NULL AS name, m.moorage, m.moorage_id, m.duration, m. \echo 'api.moorages' --SELECT * FROM api.moorages m; -SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.name, m.country, m.stay_id, m.stay_code, m.stay_duration, m.reference_count, m.latitude, m.longitude, m.geog, m.home_flag, m.notes FROM api.moorages AS m; +SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.name, m.country, m.stay_code, m.stay_duration, m.reference_count, m.latitude, m.longitude, m.geog, m.home_flag, m.notes FROM api.moorages AS m; \echo 'api.moorages_view' SELECT * FROM api.moorages_view s; diff --git a/tests/sql/grafana.sql.output b/tests/sql/grafana.sql.output index c8ae848..1b7eae9 100644 --- a/tests/sql/grafana.sql.output +++ b/tests/sql/grafana.sql.output @@ -125,80 +125,87 @@ time | t active | t api.logs_view --[ RECORD 1 ]-------------- -id | 2 -name | Knipan to Ekenäs -from | Knipan -to | Ekenäs -distance | 8.6862 -duration | PT18M --[ RECORD 2 ]-------------- -id | 1 -name | patch log name 3 -from | Bollsta -to | Slottsbacken -distance | 7.17 -duration | PT25M +-[ RECORD 1 ]----+----------------------- +id | 2 +name | Norra hamnen to Ekenäs +from | Norra hamnen +to | Ekenäs +distance | 8.8968 +duration | PT20M +_from_moorage_id | 2 +_to_moorage_id | 3 +-[ RECORD 2 ]----+----------------------- +id | 1 +name | patch log name 3 +from | patch moorage name 3 +to | Norra hamnen +distance | 7.6447 +duration | PT27M +_from_moorage_id | 1 +_to_moorage_id | 2 api.stays --[ RECORD 1 ]------------------------------------------------- -id | 1 -vessel_id | t -active | f -name | patch stay name 3 -latitude | 60.077666666666666 -longitude | 23.530866666666668 -geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 -arrived | t -departed | t -duration | -stay_code | 2 -notes | new stay note 3 --[ RECORD 2 ]------------------------------------------------- -id | 2 -vessel_id | t -active | f -name | Slottsbacken -latitude | 59.97688333333333 -longitude | 23.4321 -geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 -arrived | t -departed | t -duration | -stay_code | 1 -notes | --[ RECORD 3 ]------------------------------------------------- -id | 3 -vessel_id | t -active | t -name | Ekenäs -latitude | 59.86 -longitude | 23.365766666666666 -geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40 -arrived | t -departed | f -duration | -stay_code | 2 -notes | +-[ RECORD 1 ]-------------------------------------------------- +id | 1 +vessel_id | t +moorage_id | 1 +active | f +name | patch moorage name 3 +latitude | 60.077666666666666 +longitude | 23.530866666666668 +geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 +arrived | t +departed | t +duration | PT1M +stay_code | 2 +notes | new stay note 3 +-[ RECORD 2 ]-------------------------------------------------- +id | 2 +vessel_id | t +moorage_id | 2 +active | f +name | Norra hamnen +latitude | 59.97688333333333 +longitude | 23.4321 +geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 +arrived | t +departed | t +duration | PT2M +stay_code | 4 +notes | +-[ RECORD 3 ]-------------------------------------------------- +id | 3 +vessel_id | t +moorage_id | 3 +active | t +name | Ekenäs +latitude | 59.86 +longitude | 23.365766666666666 +geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40 +arrived | t +departed | f +duration | +stay_code | 1 +notes | stays_view --[ RECORD 1 ]+------------------ +-[ RECORD 1 ]+--------------------- id | 2 name | t -moorage | Slottsbacken +moorage | Norra hamnen moorage_id | 2 -duration | PT3M -stayed_at | Unknown -stayed_at_id | 1 +duration | PT2M +stayed_at | Dock +stayed_at_id | 4 arrived | t departed | t notes | --[ RECORD 2 ]+------------------ +-[ RECORD 2 ]+--------------------- id | 1 name | t -moorage | patch stay name 3 +moorage | patch moorage name 3 moorage_id | 1 -duration | PT2M +duration | PT1M stayed_at | Anchor stayed_at_id | 2 arrived | t @@ -210,44 +217,57 @@ api.moorages id | 1 vessel_id | t name | patch moorage name 3 -country | fi -stay_id | 1 +country | stay_code | 2 -stay_duration | PT2M +stay_duration | PT1M reference_count | 1 -latitude | 60.077666666666666 -longitude | 23.530866666666668 -geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 +latitude | 60.0776666666667 +longitude | 23.5308666666667 +geog | 0101000020E6100000B9DEBBE0E687374052A938FBF0094E40 home_flag | t notes | new moorage note 3 -[ RECORD 2 ]---+--------------------------------------------------- id | 2 vessel_id | t -name | Slottsbacken -country | fi -stay_id | 2 -stay_code | 1 -stay_duration | PT3M -reference_count | 1 -latitude | 59.97688333333333 +name | Norra hamnen +country | +stay_code | 4 +stay_duration | PT2M +reference_count | 2 +latitude | 59.9768833333333 longitude | 23.4321 -geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 +geog | 0101000020E6100000029A081B9E6E3740455658830AFD4D40 +home_flag | f +notes | +-[ RECORD 3 ]---+--------------------------------------------------- +id | 3 +vessel_id | t +name | Ekenäs +country | fi +stay_code | 1 +stay_duration | +reference_count | 1 +latitude | 59.86 +longitude | 23.3657666666667 +geog | 0101000020E6100000E84C5FE2A25D3740AE47E17A14EE4D40 home_flag | f notes | api.moorages_view -[ RECORD 1 ]-------+--------------------- +id | 2 +moorage | Norra hamnen +default_stay | Dock +default_stay_id | 4 +total_stay | 0 +total_duration | PT2M +arrivals_departures | 2 +-[ RECORD 2 ]-------+--------------------- id | 1 moorage | patch moorage name 3 default_stay | Anchor default_stay_id | 2 total_stay | 0 -arrivals_departures | 1 --[ RECORD 2 ]-------+--------------------- -id | 2 -moorage | Slottsbacken -default_stay | Unknown -default_stay_id | 1 -total_stay | 0 +total_duration | PT1M arrivals_departures | 1 diff --git a/tests/sql/monitoring.sql.output b/tests/sql/monitoring.sql.output index 57fd01d..b353e7d 100644 --- a/tests/sql/monitoring.sql.output +++ b/tests/sql/monitoring.sql.output @@ -22,15 +22,15 @@ count | 21 Test monitoring_view3 for user -[ RECORD 1 ] -count | 3682 +count | 3736 Test monitoring_voltage for user -[ RECORD 1 ] -count | 46 +count | 47 Test monitoring_temperatures for user -[ RECORD 1 ] -count | 119 +count | 120 Test monitoring_humidity for user -[ RECORD 1 ] diff --git a/tests/sql/summary.sql.output b/tests/sql/summary.sql.output index e4b60f7..f0b679d 100644 --- a/tests/sql/summary.sql.output +++ b/tests/sql/summary.sql.output @@ -6,7 +6,7 @@ You are now connected to database "signalk" as user "username". Expanded display is on. -[ RECORD 1 ]--+------------------------------- -server_version | 15.4 (Debian 15.4-2.pgdg110+1) +server_version | 15.5 (Debian 15.5-1.pgdg110+1) -[ RECORD 1 ]--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- postgis_full_version | POSTGIS="3.4.0 0874ea3" [EXTENSION] PGSQL="150" GEOS="3.9.0-CAPI-1.16.2" PROJ="7.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" LIBXML="2.9.10" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" @@ -597,11 +597,11 @@ reverse_geocode_py_fn | {"name": "Spain", "country_code": "es"} Test geoip reverse_geoip_py_fn -[ RECORD 1 ]---------------------------------------------------------------------------------------------------------------------------------------------- -versions_fn | {"api_version" : "0.4.1", "sys_version" : "PostgreSQL 15.4", "timescaledb" : "2.12.2", "postgis" : "3.4.0", "postgrest" : "PostgREST 11.2.2"} +versions_fn | {"api_version" : "0.4.1", "sys_version" : "PostgreSQL 15.5", "timescaledb" : "2.12.2", "postgis" : "3.4.0", "postgrest" : "PostgREST 11.2.2"} -[ RECORD 1 ]----------------- api_version | 0.4.1 -sys_version | PostgreSQL 15.4 +sys_version | PostgreSQL 15.5 timescaledb | 2.12.2 postgis | 3.4.0 postgrest | PostgREST 11.2.2 diff --git a/tests/tests.sh b/tests/tests.sh index 5cd512a..af2795c 100644 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -9,8 +9,20 @@ if [[ -z "${PGSAIL_API_URI}" ]]; then exit 1 fi -#npm install -npm install -g pnpm && pnpm install +# go install +if [[ ! -x "/usr/bin/go" || ! -x "/root/go/bin/mermerd" ]]; then + #wget -q https://go.dev/dl/go1.21.4.linux-arm64.tar.gz && \ + #rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.4.linux-arm64.tar.gz && \ + apt update && apt -y install golang && \ + go install github.com/KarnerTh/mermerd@latest +fi + +# pnpm install +if [[ ! -x "/usr/local/bin/pnpm" ]]; then + npm install -g pnpm +fi +pnpm install || exit 1 + # settings export mymocha="./node_modules/mocha/bin/_mocha" mkdir -p output/ && rm -rf output/* @@ -129,6 +141,14 @@ else exit 1 fi +$mymocha index5.js --reporter ./node_modules/mochawesome --reporter-options reportDir=output/,reportFilename=report5.html +if [ $? -eq 0 ]; then + echo OK +else + echo mocha index5.js + exit 1 +fi + # Monitoring unit tests psql ${PGSAIL_DB_URI} < sql/monitoring.sql > output/monitoring.sql.output diff sql/monitoring.sql.output output/monitoring.sql.output > /dev/null @@ -143,11 +163,23 @@ else fi # Download and update openapi documentation -wget ${PGSAIL_API_URI} -O ../openapi.json +wget ${PGSAIL_API_URI} -O openapi.json #echo 0 if [ $? -eq 0 ]; then + cp openapi.json ../openapi.json echo openapi.json OK else echo openapi.json FAILED exit 1 fi + +# Generate and update mermaid schema documentation +/root/go/bin/mermerd --runConfig ../ERD/mermerdConfig.yaml +#echo 0 +if [ $? -eq 0 ]; then + cp postgsail.md ../ERD/postgsail.md + echo postgsail.md OK +else + echo postgsail.md FAILED + exit 1 +fi