Update tests to match refactor of Logs,Stays,Moorages

Update dynamic openapi documentation
Add dynamic mermaid schema documentation
This commit is contained in:
xbgmsharp
2023-11-14 23:28:20 +01:00
parent c879c4bdab
commit e1e7da779e
13 changed files with 218 additions and 127 deletions

View File

@@ -211,7 +211,7 @@ request.set('User-Agent', 'PostgSail unit tests');
res.header['content-type'].should.match(new RegExp('json','g')); res.header['content-type'].should.match(new RegExp('json','g'));
res.header['server'].should.match(new RegExp('postgrest','g')); res.header['server'].should.match(new RegExp('postgrest','g'));
should.exist(res.body.token); should.exist(res.body.token);
res.body.token.should.match(user_jwt); //res.body.token.should.match(user_jwt);
console.log(user_jwt); console.log(user_jwt);
should.exist(user_jwt); should.exist(user_jwt);
done(err); done(err);

View File

@@ -43,7 +43,7 @@ var moment = require('moment');
}, },
user_tables: [ user_tables: [
{ url: '/stays', res_body_length: 3}, { 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: '/logbook', res_body_length: 2},
{ url: '/metadata', res_body_length: 1} { url: '/metadata', res_body_length: 1}
], ],
@@ -241,7 +241,7 @@ var moment = require('moment');
}, },
user_tables: [ user_tables: [
{ url: '/stays', res_body_length: 3}, { 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: '/logbook', res_body_length: 2},
{ url: '/metadata', res_body_length: 1} { url: '/metadata', res_body_length: 1}
], ],
@@ -684,7 +684,7 @@ request.set('User-Agent', 'PostgSail unit tests');
.set('Authorization', `Bearer ${user_jwt}`) .set('Authorization', `Bearer ${user_jwt}`)
.set('Accept', 'application/json') .set('Accept', 'application/json')
.end(function(err,res){ .end(function(err,res){
//console.log(res.body); console.log(res.body);
res.status.should.equal(200); res.status.should.equal(200);
should.exist(res.header['content-type']); should.exist(res.header['content-type']);
should.exist(res.header['server']); should.exist(res.header['server']);

View File

@@ -21,7 +21,19 @@
"courseovergroundtrue" : 197.4, "courseovergroundtrue" : 197.4,
"windspeedapparent" : 15.4, "windspeedapparent" : 15.4,
"anglespeedapparent" : 43.0, "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} "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}
}, },
{ {

View File

@@ -12,6 +12,18 @@
"status" : "moored", "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} "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", "time" : "2022-07-30T14:53:28.000Z",
"client_id" : "vessels.urn:mrn:imo:mmsi:123456789", "client_id" : "vessels.urn:mrn:imo:mmsi:123456789",
@@ -21,8 +33,8 @@
"courseovergroundtrue" : 207.5, "courseovergroundtrue" : 207.5,
"windspeedapparent" : 14.8, "windspeedapparent" : 14.8,
"anglespeedapparent" : -12.0, "anglespeedapparent" : -12.0,
"status" : "moored", "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 } "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", "time" : "2022-07-30T14:54:28.016Z",
@@ -348,6 +360,18 @@
"status" : "moored", "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} "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", "time" : "2022-07-30T15:21:28.467Z",
"client_id" : "vessels.urn:mrn:imo:mmsi:123456789", "client_id" : "vessels.urn:mrn:imo:mmsi:123456789",
@@ -357,7 +381,7 @@
"courseovergroundtrue" : 241.0, "courseovergroundtrue" : 241.0,
"windspeedapparent" : 4.3, "windspeedapparent" : 4.3,
"anglespeedapparent" : 74.0, "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} "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}
}, },
{ {

View File

@@ -53,10 +53,12 @@ SELECT
\echo 'Insert new api.moorages for badges' \echo 'Insert new api.moorages for badges'
INSERT INTO api.moorages 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 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)), (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)),
(6,'Badge Anchormaster',NULL,5,2,'26 days 00:49:56.418',1,NULL,NULL,NULL,false,'Badge Anchormaster',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' \echo 'Set config'
SELECT set_config('user.email', 'demo+aava@openplotter.cloud', false); SELECT set_config('user.email', 'demo+aava@openplotter.cloud', false);

View File

@@ -65,6 +65,7 @@ user_settings | {"boat" : "kapla", "recipient" : "First_kapla", "email" : "demo+
Insert new api.moorages for badges Insert new api.moorages for badges
INSERT 0 2 INSERT 0 2
ALTER SEQUENCE
Set config Set config
-[ RECORD 1 ]--------------------------- -[ RECORD 1 ]---------------------------
set_config | demo+aava@openplotter.cloud set_config | demo+aava@openplotter.cloud

View File

@@ -16,28 +16,28 @@ logbook
count | 2 count | 2
logbook logbook
-[ RECORD 1 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -[ RECORD 1 ]--+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
name | Bollsta to Slottsbacken name | Pojoviken to Norra hamnen
_from_time | t _from_time | t
_to_time | t _to_time | t
track_geojson | t track_geojson | t
track_geom | 0102000020E61000001A00000020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40 track_geom | 0102000020E61000001C000000B0DEBBE0E68737404DA938FBF0094E40B0DEBBE0E68737404DA938FBF0094E4020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40
distance | 7.17 distance | 7.6447
duration | PT25M duration | PT27M
avg_speed | 3.6961538461538455 avg_speed | 3.6357142857142852
max_speed | 6.1 max_speed | 6.1
max_wind_speed | 22.1 max_wind_speed | 22.1
notes | new log note notes | new log note
extra | {"metrics": {"propulsion.main.runTime": 10}, "observations": {"seaState": -1, "visibility": -1, "cloudCoverage": -1}} extra | {"metrics": {"propulsion.main.runTime": 10}, "observations": {"seaState": -1, "visibility": -1, "cloudCoverage": -1}}
-[ RECORD 2 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -[ RECORD 2 ]--+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
name | Knipan to Ekenäs name | Norra hamnen to Ekenäs
_from_time | t _from_time | t
_to_time | t _to_time | t
track_geojson | t track_geojson | t
track_geom | 0102000020E6100000130000004806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40DE4C5FE2A25D3740AE47E17A14EE4D40 track_geom | 0102000020E610000015000000029A081B9E6E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D404806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40DE4C5FE2A25D3740AE47E17A14EE4D40
distance | 8.6862 distance | 8.8968
duration | PT18M duration | PT20M
avg_speed | 6.026315789473684 avg_speed | 5.4523809523809526
max_speed | 6.5 max_speed | 6.5
max_wind_speed | 37.2 max_wind_speed | 37.2
notes | notes |
@@ -50,23 +50,23 @@ count | 3
stays stays
-[ RECORD 1 ]------------------------------------------------- -[ RECORD 1 ]-------------------------------------------------
active | f active | f
name | Bollsta name | Pojoviken
geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40
stay_code | 2 stay_code | 2
-[ RECORD 2 ]------------------------------------------------- -[ RECORD 2 ]-------------------------------------------------
active | f active | f
name | Slottsbacken name | Norra hamnen
geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40
stay_code | 1 stay_code | 4
-[ RECORD 3 ]------------------------------------------------- -[ RECORD 3 ]-------------------------------------------------
active | t active | t
name | Ekenäs name | Ekenäs
geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40 geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40
stay_code | 2 stay_code | 1
eventlogs_view eventlogs_view
-[ RECORD 1 ] -[ RECORD 1 ]
count | 13 count | 11
stats_logs_fn stats_logs_fn
SELECT 1 SELECT 1
@@ -74,11 +74,11 @@ SELECT 1
name | "kapla" name | "kapla"
count | 4 count | 4
max_speed | 7.1 max_speed | 7.1
max_distance | 8.6862 max_distance | 8.8968
max_duration | "PT1H11M" max_duration | "PT1H11M"
?column? | 3 ?column? | 3
?column? | 29.2865 ?column? | 30.1154
?column? | "PT2H37M" ?column? | "PT2H43M"
?column? | 44.2 ?column? | 44.2
?column? | 2 ?column? | 2
?column? | 4 ?column? | 4

View File

@@ -6,7 +6,7 @@
You are now connected to database "signalk" as user "username". You are now connected to database "signalk" as user "username".
Expanded display is on. Expanded display is on.
-[ RECORD 1 ] -[ RECORD 1 ]
jobs | 28 jobs | 24
-[ RECORD 1 ]-+- -[ RECORD 1 ]-+-
run_cron_jobs | run_cron_jobs |

View File

@@ -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' \echo 'api.logs_view'
--SELECT * FROM api.logbook l; --SELECT * FROM api.logbook l;
--SELECT * FROM api.logs_view 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; --SELECT * FROM api.log_view l;
\echo 'api.stays' \echo 'api.stays'
--SELECT * FROM api.stays s; --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' \echo 'stays_view'
--SELECT * FROM api.stays_view s; --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' \echo 'api.moorages'
--SELECT * FROM api.moorages m; --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' \echo 'api.moorages_view'
SELECT * FROM api.moorages_view s; SELECT * FROM api.moorages_view s;

View File

@@ -125,51 +125,58 @@ time | t
active | t active | t
api.logs_view api.logs_view
-[ RECORD 1 ]-------------- -[ RECORD 1 ]----+-----------------------
id | 2 id | 2
name | Knipan to Ekenäs name | Norra hamnen to Ekenäs
from | Knipan from | Norra hamnen
to | Ekenäs to | Ekenäs
distance | 8.6862 distance | 8.8968
duration | PT18M duration | PT20M
-[ RECORD 2 ]-------------- _from_moorage_id | 2
_to_moorage_id | 3
-[ RECORD 2 ]----+-----------------------
id | 1 id | 1
name | patch log name 3 name | patch log name 3
from | Bollsta from | patch moorage name 3
to | Slottsbacken to | Norra hamnen
distance | 7.17 distance | 7.6447
duration | PT25M duration | PT27M
_from_moorage_id | 1
_to_moorage_id | 2
api.stays api.stays
-[ RECORD 1 ]------------------------------------------------- -[ RECORD 1 ]--------------------------------------------------
id | 1 id | 1
vessel_id | t vessel_id | t
moorage_id | 1
active | f active | f
name | patch stay name 3 name | patch moorage name 3
latitude | 60.077666666666666 latitude | 60.077666666666666
longitude | 23.530866666666668 longitude | 23.530866666666668
geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40
arrived | t arrived | t
departed | t departed | t
duration | duration | PT1M
stay_code | 2 stay_code | 2
notes | new stay note 3 notes | new stay note 3
-[ RECORD 2 ]------------------------------------------------- -[ RECORD 2 ]--------------------------------------------------
id | 2 id | 2
vessel_id | t vessel_id | t
moorage_id | 2
active | f active | f
name | Slottsbacken name | Norra hamnen
latitude | 59.97688333333333 latitude | 59.97688333333333
longitude | 23.4321 longitude | 23.4321
geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40 geog | 0101000020E6100000029A081B9E6E37404A5658830AFD4D40
arrived | t arrived | t
departed | t departed | t
duration | duration | PT2M
stay_code | 1 stay_code | 4
notes | notes |
-[ RECORD 3 ]------------------------------------------------- -[ RECORD 3 ]--------------------------------------------------
id | 3 id | 3
vessel_id | t vessel_id | t
moorage_id | 3
active | t active | t
name | Ekenäs name | Ekenäs
latitude | 59.86 latitude | 59.86
@@ -178,27 +185,27 @@ geog | 0101000020E6100000DE4C5FE2A25D3740AE47E17A14EE4D40
arrived | t arrived | t
departed | f departed | f
duration | duration |
stay_code | 2 stay_code | 1
notes | notes |
stays_view stays_view
-[ RECORD 1 ]+------------------ -[ RECORD 1 ]+---------------------
id | 2 id | 2
name | t name | t
moorage | Slottsbacken moorage | Norra hamnen
moorage_id | 2 moorage_id | 2
duration | PT3M duration | PT2M
stayed_at | Unknown stayed_at | Dock
stayed_at_id | 1 stayed_at_id | 4
arrived | t arrived | t
departed | t departed | t
notes | notes |
-[ RECORD 2 ]+------------------ -[ RECORD 2 ]+---------------------
id | 1 id | 1
name | t name | t
moorage | patch stay name 3 moorage | patch moorage name 3
moorage_id | 1 moorage_id | 1
duration | PT2M duration | PT1M
stayed_at | Anchor stayed_at | Anchor
stayed_at_id | 2 stayed_at_id | 2
arrived | t arrived | t
@@ -210,44 +217,57 @@ api.moorages
id | 1 id | 1
vessel_id | t vessel_id | t
name | patch moorage name 3 name | patch moorage name 3
country | fi country |
stay_id | 1
stay_code | 2 stay_code | 2
stay_duration | PT2M stay_duration | PT1M
reference_count | 1 reference_count | 1
latitude | 60.077666666666666 latitude | 60.0776666666667
longitude | 23.530866666666668 longitude | 23.5308666666667
geog | 0101000020E6100000B0DEBBE0E68737404DA938FBF0094E40 geog | 0101000020E6100000B9DEBBE0E687374052A938FBF0094E40
home_flag | t home_flag | t
notes | new moorage note 3 notes | new moorage note 3
-[ RECORD 2 ]---+--------------------------------------------------- -[ RECORD 2 ]---+---------------------------------------------------
id | 2 id | 2
vessel_id | t vessel_id | t
name | Slottsbacken name | Norra hamnen
country | fi country |
stay_id | 2 stay_code | 4
stay_code | 1 stay_duration | PT2M
stay_duration | PT3M reference_count | 2
reference_count | 1 latitude | 59.9768833333333
latitude | 59.97688333333333
longitude | 23.4321 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 home_flag | f
notes | notes |
api.moorages_view api.moorages_view
-[ RECORD 1 ]-------+--------------------- -[ 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 id | 1
moorage | patch moorage name 3 moorage | patch moorage name 3
default_stay | Anchor default_stay | Anchor
default_stay_id | 2 default_stay_id | 2
total_stay | 0 total_stay | 0
arrivals_departures | 1 total_duration | PT1M
-[ RECORD 2 ]-------+---------------------
id | 2
moorage | Slottsbacken
default_stay | Unknown
default_stay_id | 1
total_stay | 0
arrivals_departures | 1 arrivals_departures | 1

View File

@@ -22,15 +22,15 @@ count | 21
Test monitoring_view3 for user Test monitoring_view3 for user
-[ RECORD 1 ] -[ RECORD 1 ]
count | 3682 count | 3736
Test monitoring_voltage for user Test monitoring_voltage for user
-[ RECORD 1 ] -[ RECORD 1 ]
count | 46 count | 47
Test monitoring_temperatures for user Test monitoring_temperatures for user
-[ RECORD 1 ] -[ RECORD 1 ]
count | 119 count | 120
Test monitoring_humidity for user Test monitoring_humidity for user
-[ RECORD 1 ] -[ RECORD 1 ]

View File

@@ -6,7 +6,7 @@
You are now connected to database "signalk" as user "username". You are now connected to database "signalk" as user "username".
Expanded display is on. Expanded display is on.
-[ RECORD 1 ]--+------------------------------- -[ RECORD 1 ]--+-------------------------------
server_version | 15.4 (Debian 15.4-2.pgdg110+1) server_version | 15.5 (Debian 15.5-1.pgdg110+1)
-[ RECORD 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)" 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 Test geoip reverse_geoip_py_fn
-[ RECORD 1 ]---------------------------------------------------------------------------------------------------------------------------------------------- -[ 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 ]----------------- -[ RECORD 1 ]-----------------
api_version | 0.4.1 api_version | 0.4.1
sys_version | PostgreSQL 15.4 sys_version | PostgreSQL 15.5
timescaledb | 2.12.2 timescaledb | 2.12.2
postgis | 3.4.0 postgis | 3.4.0
postgrest | PostgREST 11.2.2 postgrest | PostgREST 11.2.2

View File

@@ -9,8 +9,20 @@ if [[ -z "${PGSAIL_API_URI}" ]]; then
exit 1 exit 1
fi fi
#npm install # go install
npm install -g pnpm && pnpm 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 # settings
export mymocha="./node_modules/mocha/bin/_mocha" export mymocha="./node_modules/mocha/bin/_mocha"
mkdir -p output/ && rm -rf output/* mkdir -p output/ && rm -rf output/*
@@ -129,6 +141,14 @@ else
exit 1 exit 1
fi 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 # Monitoring unit tests
psql ${PGSAIL_DB_URI} < sql/monitoring.sql > output/monitoring.sql.output psql ${PGSAIL_DB_URI} < sql/monitoring.sql > output/monitoring.sql.output
diff sql/monitoring.sql.output output/monitoring.sql.output > /dev/null diff sql/monitoring.sql.output output/monitoring.sql.output > /dev/null
@@ -143,11 +163,23 @@ else
fi fi
# Download and update openapi documentation # Download and update openapi documentation
wget ${PGSAIL_API_URI} -O ../openapi.json wget ${PGSAIL_API_URI} -O openapi.json
#echo 0 #echo 0
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
cp openapi.json ../openapi.json
echo openapi.json OK echo openapi.json OK
else else
echo openapi.json FAILED echo openapi.json FAILED
exit 1 exit 1
fi 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