@opengis/gis 0.2.174 → 0.2.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -181
- package/dist/{CardIcon-Cg8bUM4G.js → CardIcon-c1Q2M3wQ.js} +1 -1
- package/dist/{EntityTablePage-DHQGlLRk.js → EntityTablePage-B5gpkH4S.js} +2 -2
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BIL1ocLY.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-DnGSvmMU.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-Buff9gTO.js → HeaderActions.vue_vue_type_script_setup_true_lang-C2B61JP6.js} +1 -1
- package/dist/{MapSettings-De-z7r5t.js → MapSettings-6-Xru5Q8.js} +2 -2
- package/dist/{RastersTablePage-Cdgkri9K.js → RastersTablePage-CXNOcTy-.js} +2 -2
- package/dist/{cartocss-BT50SVhy.js → cartocss-BFVqWvfP.js} +6 -6
- package/dist/{import-utils-CMWiuRPp.js → import-utils-uxk4LdUJ.js} +1 -1
- package/dist/{index-CHFLgCGW.js → index-CahlV-Xs.js} +39 -39
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +19 -19
- package/dist/{raster-dSEb1SIG.js → raster-CEi56f0P.js} +3 -3
- package/dist/{register-D7Puupgo.js → register-NFAGBNa3.js} +3 -3
- package/dist/{service-Cz6T0O3Z.js → service-BYspag8U.js} +829 -832
- package/dist/{vs-datatable-DqVncrSg.js → vs-datatable-CHcBr6zy.js} +2 -2
- package/module/gis/cls/service_type.json +42 -42
- package/module/gis/form/gis.registers.form.json +4 -1
- package/module/test/map/addr.json +302 -302
- package/module/test/map/addr1.yml +23 -23
- package/module/test/select/address.str_id.sql +3 -3
- package/package.json +77 -77
- package/plugin.js +64 -64
- package/server/migrations/array_intersect.sql +13 -13
- package/server/migrations/cartocss.sql +27 -27
- package/server/migrations/group_list.sql +74 -74
- package/server/migrations/maps.sql +30 -30
- package/server/migrations/metadata.sql +415 -415
- package/server/migrations/ogc.sql +106 -106
- package/server/migrations/rasters.sql +265 -265
- package/server/migrations/services.sql +247 -247
- package/server/migrations/services_users_rel.sql +22 -22
- package/server/migrations/widgets.sql +20 -20
- package/server/plugins/crons.js +21 -21
- package/server/plugins/mapnik/funcs/checkRasterFile.js +107 -107
- package/server/plugins/mapnik/funcs/mapnik.js +151 -151
- package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
- package/server/plugins/mapnik/map.proto +437 -437
- package/server/plugins/vite.js +74 -74
- package/server/routes/cartocss/cartocss.route.js +31 -31
- package/server/routes/cartocss/cartocss.route.test.js +78 -78
- package/server/routes/cartocss/cartocss.schema.js +73 -73
- package/server/routes/cartocss/functions/add.cartocss.js +39 -39
- package/server/routes/cartocss/functions/get.cartocss.js +57 -57
- package/server/routes/gis/functions/checkXML.js +107 -107
- package/server/routes/gis/functions/dashboard.js +24 -24
- package/server/routes/gis/gis.route.js +26 -26
- package/server/routes/gis/gis.route.test.js +33 -33
- package/server/routes/map/functions/clearTiles.js +35 -35
- package/server/routes/map/functions/geojson.js +187 -187
- package/server/routes/map/functions/gis.convert.js +65 -65
- package/server/routes/map/functions/gis.icon.js +220 -220
- package/server/routes/map/functions/jsonData.js +206 -206
- package/server/routes/map/functions/layerList.js +102 -102
- package/server/routes/map/functions/map.js +122 -122
- package/server/routes/map/functions/mapCatalog.js +72 -72
- package/server/routes/map/functions/mapCatalogAttribute.js +53 -53
- package/server/routes/map/functions/mapFeatures.js +133 -133
- package/server/routes/map/functions/mapFormat.js +232 -231
- package/server/routes/map/functions/mapTiles.js +162 -162
- package/server/routes/map/functions/maps.js +15 -15
- package/server/routes/map/functions/marker_icon.js +43 -43
- package/server/routes/map/functions/parseGeoFile.js +85 -85
- package/server/routes/map/functions/pointHeight.js +51 -51
- package/server/routes/map/functions/vtile.js +174 -174
- package/server/routes/map/functions/vtile1.js +185 -185
- package/server/routes/map/map.route.js +280 -280
- package/server/routes/map/map.route.test.js +503 -503
- package/server/routes/map/map.schema.js +356 -356
- package/server/routes/map/pin/circle1.svg +76 -76
- package/server/routes/map/pin/circle2.svg +18 -18
- package/server/routes/map/pin/none.svg +12 -12
- package/server/routes/map/pin/pin.svg +14 -14
- package/server/routes/map/pin/pin1.svg +16 -16
- package/server/routes/map/pin/pin2.svg +7 -7
- package/server/routes/map/pin/pin3.svg +34 -34
- package/server/routes/map/pin/pin4.svg +14 -14
- package/server/routes/map/pin/pin5.svg +7 -7
- package/server/routes/map/pin/pin6.svg +12 -12
- package/server/routes/map/pin/pin7.svg +12 -12
- package/server/routes/mapnik/functions/cartoBounds.js +32 -32
- package/server/routes/mapnik/functions/clearTiles.js +103 -103
- package/server/routes/mapnik/functions/convertBoundToTile.js +27 -27
- package/server/routes/mapnik/functions/createXml.js +76 -76
- package/server/routes/mapnik/functions/createXmlMulti.js +72 -72
- package/server/routes/mapnik/functions/fileSearch.js +35 -35
- package/server/routes/mapnik/functions/fileStat.js +28 -28
- package/server/routes/mapnik/functions/pretile.js +138 -138
- package/server/routes/mapnik/functions/rasterInfo.js +66 -66
- package/server/routes/mapnik/functions/readDir.js +22 -22
- package/server/routes/mapnik/functions/rtile.js +164 -164
- package/server/routes/mapnik/functions/uploadRaster.js +152 -152
- package/server/routes/mapnik/functions/uploadXML.js +140 -140
- package/server/routes/mapnik/mapnik.route.js +102 -102
- package/server/routes/mapnik/mapnik.route.test.js +370 -370
- package/server/routes/mapnik/mapnik.schema.mjs +195 -195
- package/server/routes/mapnik.prefixless/functions/mapnikLogger.js +31 -31
- package/server/routes/mapnik.prefixless/functions/mapnikStat.js +21 -21
- package/server/routes/mapnik.prefixless/mapnik.prefixless.route.js +20 -20
- package/server/routes/mapnik.prefixless/mapnik.prefixless.route.test.js +91 -91
- package/server/routes/mapnik.prefixless/mapnik.prefixless.schema.mjs +27 -27
- package/server/routes/maps/functions/add.map.js +42 -42
- package/server/routes/maps/functions/del.map.js +17 -17
- package/server/routes/maps/functions/get.map.js +119 -119
- package/server/routes/maps/maps.route.js +58 -58
- package/server/routes/maps/maps.route.test.js +231 -231
- package/server/routes/maps/maps.schema.js +9 -9
- package/server/routes/metadata/functions/editMetadata.js +35 -35
- package/server/routes/metadata/functions/metadataXML.js +19 -19
- package/server/routes/metadata/metadata.route.js +26 -26
- package/server/routes/metadata/metadata.route.test.js +46 -46
- package/server/routes/metadata/metadata.schema.js +53 -53
- package/server/routes/ogc/functions/map.info.point.js +117 -117
- package/server/routes/ogc/ogc.route.js +21 -21
- package/server/routes/ogc/ogc.route.test.js +53 -53
- package/server/routes/ogc/ogc.schema.js +16 -16
- package/server/routes/permissions/functions/catalog.permissions.edit.js +20 -20
- package/server/routes/permissions/functions/catalog.permissions.js +12 -12
- package/server/routes/permissions/functions/get.permissions.js +59 -59
- package/server/routes/permissions/functions/gis.catalog.js +80 -80
- package/server/routes/permissions/permissions.route.js +35 -35
- package/server/routes/permissions/permissions.route.test.js +35 -35
- package/server/routes/permissions/permissions.schema.js +43 -43
- package/server/routes/registers/functions/add.registry.js +37 -37
- package/server/routes/registers/functions/classifiers.js +100 -100
- package/server/routes/registers/functions/columns.js +3 -3
- package/server/routes/registers/functions/content.type.js +9 -9
- package/server/routes/registers/functions/del.registry.js +14 -14
- package/server/routes/registers/functions/get.info.js +93 -93
- package/server/routes/registers/functions/gis.export.js +159 -159
- package/server/routes/registers/functions/gis.registry.js +71 -71
- package/server/routes/registers/functions/gis.registry.list.js +61 -61
- package/server/routes/registers/functions/handleRegistryRequest.js +147 -147
- package/server/routes/registers/functions/map.registry.js +87 -87
- package/server/routes/registers/registers.route.js +80 -80
- package/server/routes/registers/registers.route.test.js +144 -144
- package/server/routes/registers/registers.schema.js +246 -246
- package/server/routes/root.mjs +3 -3
- package/server/routes/services/functions/add.service.js +62 -62
- package/server/routes/services/functions/create.route.js +93 -93
- package/server/routes/services/functions/del.service.js +12 -12
- package/server/routes/services/functions/get.layer.geom.js +27 -27
- package/server/routes/services/functions/get.service.users.js +76 -76
- package/server/routes/services/functions/get.services.col.js +34 -34
- package/server/routes/services/functions/get.services.js +89 -89
- package/server/routes/services/functions/legend.auto.js +77 -77
- package/server/routes/services/services.route.js +76 -76
- package/server/routes/services/services.route.test.js +167 -167
- package/server/routes/services/services.schema.js +278 -278
- package/server/routes/widgets/functions/add.widget.js +38 -38
- package/server/routes/widgets/functions/del.widget.js +17 -17
- package/server/routes/widgets/functions/get.widget.js +41 -41
- package/server/routes/widgets/widgets.route.js +61 -61
- package/server/routes/widgets/widgets.route.test.js +144 -144
- package/server/routes/widgets/widgets.schema.js +24 -24
- package/server/shared/listFiles.js +15 -0
- package/utils.js +13 -13
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
|
|
2
|
-
|
|
3
|
-
import { getPGAsync } from '@opengis/fastify-table/utils.js';
|
|
4
|
-
|
|
5
|
-
import { build, injectWithHeaders } from '../../../test/helper.js';
|
|
6
|
-
|
|
7
|
-
let pg;
|
|
8
|
-
|
|
9
|
-
beforeAll(async () => {
|
|
10
|
-
await build();
|
|
11
|
-
|
|
12
|
-
pg = await getPGAsync();
|
|
13
|
-
|
|
14
|
-
await cleanUp('before');
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
afterAll(async () => {
|
|
18
|
-
await cleanUp('after');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const testId = 'testRegister';
|
|
22
|
-
|
|
23
|
-
const cleanUp = async (when) => {
|
|
24
|
-
if (!pg) return;
|
|
25
|
-
const rowCount2 = await pg.query('delete from gis.registers where register_id=$1', [testId]).then(r => r.rowCount || 0);
|
|
26
|
-
console.log(`clean up finished: ${when}`, rowCount2);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
describe('GIS routes', () => {
|
|
30
|
-
test('GET /gis-registry/:slug returns 200', async () => {
|
|
31
|
-
const { slug, table } = await pg.query('SELECT register_id as slug, table_name as table FROM gis.registers where table_name is not null limit 1').then(r => r.rows[0]) || {};
|
|
32
|
-
const pkey = pg.pk?.[table];
|
|
33
|
-
expect(pkey).toBeDefined();
|
|
34
|
-
|
|
35
|
-
const res = await injectWithHeaders({
|
|
36
|
-
url: `/api/gis-registry/${slug}`,
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
expect(res.statusCode).toBe(200);
|
|
40
|
-
[
|
|
41
|
-
"total", "limit", "page", "register_id", "name", "card", "table_name", "register_key", "description",
|
|
42
|
-
"rows", "service_id", "columns", "filters", "fields", "view", "is_downloadable", "is_map", "is_register",
|
|
43
|
-
"is_files", "config"
|
|
44
|
-
].forEach(key => expect(res.body).toHaveProperty(key));
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
test('GET /gis-registry/:slug/:objectId returns 200', async () => {
|
|
48
|
-
const { slug, table } = await pg.query('SELECT register_id as slug, table_name as table FROM gis.registers where table_name is not null limit 1').then(r => r.rows[0]) || {};
|
|
49
|
-
const pkey = pg.pk?.[table];
|
|
50
|
-
expect(pkey).toBeDefined();
|
|
51
|
-
|
|
52
|
-
const objectId = await pg.query(`select ${pkey} from ${table} limit 1`).then(r => r.rows?.[0]?.[pkey]);
|
|
53
|
-
expect(objectId).toBeDefined();
|
|
54
|
-
|
|
55
|
-
const url = `/api/gis-registry/${slug}/${objectId}`;
|
|
56
|
-
const res = await injectWithHeaders({
|
|
57
|
-
url,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
expect(res.statusCode, url).toBe(200);
|
|
61
|
-
[
|
|
62
|
-
"row", "card", "d", "columns", "is_downloadable", "register_key", "register_id", "service_id",
|
|
63
|
-
"name", "is_files", "is_map", "is_register"
|
|
64
|
-
].forEach(key => expect(res.body).toHaveProperty(key));
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test('GET /gis-registry returns 200', async () => {
|
|
68
|
-
const res = await injectWithHeaders({
|
|
69
|
-
url: '/api/gis-registry',
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
expect(res.statusCode).toBe(200);
|
|
73
|
-
["rows", "total", "page", "limit", "offset"].forEach(key => expect(res.body).toHaveProperty(key));
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
test('POST /gis-registry returns 200', async () => {
|
|
77
|
-
const table = pg.tlist.find(el => el.includes('parcel') || el.includes('address') || el.includes('street')) || pg.tlist[0];
|
|
78
|
-
await pg.query('delete from gis.registers where register_id=$1', [testId]);
|
|
79
|
-
|
|
80
|
-
const payload = {
|
|
81
|
-
register_key: 'unit-test',
|
|
82
|
-
name: 'unit-test',
|
|
83
|
-
table_name: table
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const res = await injectWithHeaders({
|
|
87
|
-
method: 'POST',
|
|
88
|
-
url: `/api/gis-registry/${testId}`,
|
|
89
|
-
payload
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
expect(res.statusCode).toBe(200);
|
|
93
|
-
expect(res.body).toHaveProperty('register_id');
|
|
94
|
-
expect(res.body).toHaveProperty('register_key');
|
|
95
|
-
expect(res.body).toHaveProperty('name');
|
|
96
|
-
expect(res.body.name).toBe(payload.name);
|
|
97
|
-
expect(res.body).toHaveProperty('table_name');
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test('PUT /gis-registry/:slug returns 200', async () => {
|
|
101
|
-
const payload = {
|
|
102
|
-
name: 'unit-test edited',
|
|
103
|
-
};
|
|
104
|
-
const res = await injectWithHeaders({
|
|
105
|
-
method: 'PUT',
|
|
106
|
-
url: `/api/gis-registry/${testId}`,
|
|
107
|
-
payload
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
expect(res.statusCode).toBe(200);
|
|
111
|
-
expect(res.body).toHaveProperty('register_id');
|
|
112
|
-
expect(res.body).toHaveProperty('register_key');
|
|
113
|
-
expect(res.body).toHaveProperty('name');
|
|
114
|
-
expect(res.body.name).toBe(payload.name);
|
|
115
|
-
expect(res.body).toHaveProperty('table_name');
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// ! before delete
|
|
119
|
-
test('GET /gis-export/:type/:slug returns 200', async () => {
|
|
120
|
-
const res = await injectWithHeaders({
|
|
121
|
-
url: `/api/gis-export/register/${testId}`,
|
|
122
|
-
format: 'csv'
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
expect(res.statusCode).toBe(200);
|
|
126
|
-
expect(res.headers).toHaveProperty('content-type');
|
|
127
|
-
expect(res.headers['content-type']).toBe('text/csv');
|
|
128
|
-
expect(res.headers).toHaveProperty('content-disposition');
|
|
129
|
-
expect(res.headers['content-disposition']).toMatch('attachment; filename=');
|
|
130
|
-
expect(res.body.length).toBeGreaterThan(0);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
test('DELETE /gis-registry/:slug returns 200', async () => {
|
|
134
|
-
const res = await injectWithHeaders({
|
|
135
|
-
method: 'DELETE',
|
|
136
|
-
url: `/api/gis-registry/${testId}`,
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
expect(res.statusCode).toBe(200);
|
|
140
|
-
expect(res.body).toHaveProperty('register_id');
|
|
141
|
-
expect(res.body).toHaveProperty('register_key');
|
|
142
|
-
expect(res.body).toHaveProperty('name');
|
|
143
|
-
expect(res.body).toHaveProperty('table_name');
|
|
144
|
-
});
|
|
1
|
+
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import { getPGAsync } from '@opengis/fastify-table/utils.js';
|
|
4
|
+
|
|
5
|
+
import { build, injectWithHeaders } from '../../../test/helper.js';
|
|
6
|
+
|
|
7
|
+
let pg;
|
|
8
|
+
|
|
9
|
+
beforeAll(async () => {
|
|
10
|
+
await build();
|
|
11
|
+
|
|
12
|
+
pg = await getPGAsync();
|
|
13
|
+
|
|
14
|
+
await cleanUp('before');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterAll(async () => {
|
|
18
|
+
await cleanUp('after');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const testId = 'testRegister';
|
|
22
|
+
|
|
23
|
+
const cleanUp = async (when) => {
|
|
24
|
+
if (!pg) return;
|
|
25
|
+
const rowCount2 = await pg.query('delete from gis.registers where register_id=$1', [testId]).then(r => r.rowCount || 0);
|
|
26
|
+
console.log(`clean up finished: ${when}`, rowCount2);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
describe('GIS routes', () => {
|
|
30
|
+
test('GET /gis-registry/:slug returns 200', async () => {
|
|
31
|
+
const { slug, table } = await pg.query('SELECT register_id as slug, table_name as table FROM gis.registers where table_name is not null limit 1').then(r => r.rows[0]) || {};
|
|
32
|
+
const pkey = pg.pk?.[table];
|
|
33
|
+
expect(pkey).toBeDefined();
|
|
34
|
+
|
|
35
|
+
const res = await injectWithHeaders({
|
|
36
|
+
url: `/api/gis-registry/${slug}`,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
expect(res.statusCode).toBe(200);
|
|
40
|
+
[
|
|
41
|
+
"total", "limit", "page", "register_id", "name", "card", "table_name", "register_key", "description",
|
|
42
|
+
"rows", "service_id", "columns", "filters", "fields", "view", "is_downloadable", "is_map", "is_register",
|
|
43
|
+
"is_files", "config"
|
|
44
|
+
].forEach(key => expect(res.body).toHaveProperty(key));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('GET /gis-registry/:slug/:objectId returns 200', async () => {
|
|
48
|
+
const { slug, table } = await pg.query('SELECT register_id as slug, table_name as table FROM gis.registers where table_name is not null limit 1').then(r => r.rows[0]) || {};
|
|
49
|
+
const pkey = pg.pk?.[table];
|
|
50
|
+
expect(pkey).toBeDefined();
|
|
51
|
+
|
|
52
|
+
const objectId = await pg.query(`select ${pkey} from ${table} limit 1`).then(r => r.rows?.[0]?.[pkey]);
|
|
53
|
+
expect(objectId).toBeDefined();
|
|
54
|
+
|
|
55
|
+
const url = `/api/gis-registry/${slug}/${objectId}`;
|
|
56
|
+
const res = await injectWithHeaders({
|
|
57
|
+
url,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
expect(res.statusCode, url).toBe(200);
|
|
61
|
+
[
|
|
62
|
+
"row", "card", "d", "columns", "is_downloadable", "register_key", "register_id", "service_id",
|
|
63
|
+
"name", "is_files", "is_map", "is_register"
|
|
64
|
+
].forEach(key => expect(res.body).toHaveProperty(key));
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('GET /gis-registry returns 200', async () => {
|
|
68
|
+
const res = await injectWithHeaders({
|
|
69
|
+
url: '/api/gis-registry',
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
expect(res.statusCode).toBe(200);
|
|
73
|
+
["rows", "total", "page", "limit", "offset"].forEach(key => expect(res.body).toHaveProperty(key));
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
test('POST /gis-registry returns 200', async () => {
|
|
77
|
+
const table = pg.tlist.find(el => el.includes('parcel') || el.includes('address') || el.includes('street')) || pg.tlist[0];
|
|
78
|
+
await pg.query('delete from gis.registers where register_id=$1', [testId]);
|
|
79
|
+
|
|
80
|
+
const payload = {
|
|
81
|
+
register_key: 'unit-test',
|
|
82
|
+
name: 'unit-test',
|
|
83
|
+
table_name: table
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const res = await injectWithHeaders({
|
|
87
|
+
method: 'POST',
|
|
88
|
+
url: `/api/gis-registry/${testId}`,
|
|
89
|
+
payload
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
expect(res.statusCode).toBe(200);
|
|
93
|
+
expect(res.body).toHaveProperty('register_id');
|
|
94
|
+
expect(res.body).toHaveProperty('register_key');
|
|
95
|
+
expect(res.body).toHaveProperty('name');
|
|
96
|
+
expect(res.body.name).toBe(payload.name);
|
|
97
|
+
expect(res.body).toHaveProperty('table_name');
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
test('PUT /gis-registry/:slug returns 200', async () => {
|
|
101
|
+
const payload = {
|
|
102
|
+
name: 'unit-test edited',
|
|
103
|
+
};
|
|
104
|
+
const res = await injectWithHeaders({
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
url: `/api/gis-registry/${testId}`,
|
|
107
|
+
payload
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
expect(res.statusCode).toBe(200);
|
|
111
|
+
expect(res.body).toHaveProperty('register_id');
|
|
112
|
+
expect(res.body).toHaveProperty('register_key');
|
|
113
|
+
expect(res.body).toHaveProperty('name');
|
|
114
|
+
expect(res.body.name).toBe(payload.name);
|
|
115
|
+
expect(res.body).toHaveProperty('table_name');
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// ! before delete
|
|
119
|
+
test('GET /gis-export/:type/:slug returns 200', async () => {
|
|
120
|
+
const res = await injectWithHeaders({
|
|
121
|
+
url: `/api/gis-export/register/${testId}`,
|
|
122
|
+
format: 'csv'
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
expect(res.statusCode).toBe(200);
|
|
126
|
+
expect(res.headers).toHaveProperty('content-type');
|
|
127
|
+
expect(res.headers['content-type']).toBe('text/csv');
|
|
128
|
+
expect(res.headers).toHaveProperty('content-disposition');
|
|
129
|
+
expect(res.headers['content-disposition']).toMatch('attachment; filename=');
|
|
130
|
+
expect(res.body.length).toBeGreaterThan(0);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
test('DELETE /gis-registry/:slug returns 200', async () => {
|
|
134
|
+
const res = await injectWithHeaders({
|
|
135
|
+
method: 'DELETE',
|
|
136
|
+
url: `/api/gis-registry/${testId}`,
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
expect(res.statusCode).toBe(200);
|
|
140
|
+
expect(res.body).toHaveProperty('register_id');
|
|
141
|
+
expect(res.body).toHaveProperty('register_key');
|
|
142
|
+
expect(res.body).toHaveProperty('name');
|
|
143
|
+
expect(res.body).toHaveProperty('table_name');
|
|
144
|
+
});
|
|
145
145
|
});
|