backend-plus 2.7.0-beta.2 → 2.7.0-beta.3
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/for-client/css/my-things.styl +11 -0
- package/lib/backend-plus.d.ts +1 -1
- package/lib/backend-plus.js +7 -3
- package/package.json +15 -15
- package/src/for-client/my-localdb.js +506 -0
- package/src/for-client/my-localdb.js.map +1 -0
- package/src/for-client/my-websqldb.js +433 -0
- package/src/for-client/my-websqldb.js.map +1 -0
- package/src/test/karma-test-localdb.d.ts +1 -0
- package/src/test/karma-test-localdb.js +325 -0
- package/src/test/karma-test-localdb.js.map +1 -0
- package/for-client/my-localdb.js +0 -689
- package/for-client/my-localdb.js.map +0 -1
- package/for-client/my-websqldb.js +0 -600
- package/for-client/my-websqldb.js.map +0 -1
- /package/{for-client → src/for-client}/my-localdb.d.ts +0 -0
- /package/{for-client → src/for-client}/my-websqldb.d.ts +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const best_globals_1 = require("best-globals");
|
|
13
|
+
require("mocha");
|
|
14
|
+
const my_websqldb_1 = require("../for-client/my-websqldb");
|
|
15
|
+
function compare(obtained, expected) {
|
|
16
|
+
expect(obtained).to.eql(expected);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
before(function () {
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
window.myOwn = window.myOwn || {};
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
window.myOwn.config = window.myOwn.config || {};
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
window.myOwn.config.useragent = new UserAgent().parse(window.navigator.userAgent);
|
|
26
|
+
});
|
|
27
|
+
describe("websql-db", function () {
|
|
28
|
+
var ldb;
|
|
29
|
+
before(function () {
|
|
30
|
+
this.timeout(10000);
|
|
31
|
+
ldb = new my_websqldb_1.WebsqlDb("the-test-name" + Math.random());
|
|
32
|
+
});
|
|
33
|
+
after(function () {
|
|
34
|
+
//ldb.close();
|
|
35
|
+
});
|
|
36
|
+
describe("structures", function () {
|
|
37
|
+
it("put and get structure", function () {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
this.timeout(10000);
|
|
40
|
+
var tableDef = {
|
|
41
|
+
name: 'this_name',
|
|
42
|
+
fields: [
|
|
43
|
+
{ name: 'pk1', typeName: 'text' }
|
|
44
|
+
],
|
|
45
|
+
primaryKey: ['pk1']
|
|
46
|
+
};
|
|
47
|
+
yield ldb.registerStructure(tableDef);
|
|
48
|
+
var newTableDef = yield ldb.getStructure(tableDef.name);
|
|
49
|
+
compare(tableDef, newTableDef);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
it("check if exists and exists", function () {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
this.timeout(10000);
|
|
55
|
+
var tableDef = {
|
|
56
|
+
name: 'this_name',
|
|
57
|
+
fields: [
|
|
58
|
+
{ name: 'pk1', typeName: 'text' }
|
|
59
|
+
],
|
|
60
|
+
primaryKey: ['pk1']
|
|
61
|
+
};
|
|
62
|
+
var exists = yield ldb.existsStructure(tableDef.name);
|
|
63
|
+
compare(true, exists);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it("check if exists and not exists", function () {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
this.timeout(10000);
|
|
69
|
+
var tableDef = {
|
|
70
|
+
name: 'inexistent_this_name',
|
|
71
|
+
fields: [
|
|
72
|
+
{ name: 'pk1', typeName: 'text' }
|
|
73
|
+
],
|
|
74
|
+
primaryKey: ['pk1']
|
|
75
|
+
};
|
|
76
|
+
var exists = yield ldb.existsStructure(tableDef.name);
|
|
77
|
+
compare(false, exists);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
it("check empty structure", function () {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
this.timeout(10000);
|
|
83
|
+
var tableDef = {
|
|
84
|
+
name: 'this_name',
|
|
85
|
+
fields: [
|
|
86
|
+
{ name: 'pk1', typeName: 'text' }
|
|
87
|
+
],
|
|
88
|
+
primaryKey: ['pk1']
|
|
89
|
+
};
|
|
90
|
+
var isEmpty = yield ldb.isEmpty(tableDef.name);
|
|
91
|
+
compare(true, isEmpty);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it("reput and get structure", function () {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
this.timeout(10000);
|
|
97
|
+
var tableDef = {
|
|
98
|
+
name: 'this_name',
|
|
99
|
+
fields: [
|
|
100
|
+
{ name: 'pk1', typeName: 'text' },
|
|
101
|
+
{ name: 'field1', typeName: 'text' }
|
|
102
|
+
],
|
|
103
|
+
primaryKey: ['pk1']
|
|
104
|
+
};
|
|
105
|
+
yield ldb.registerStructure(tableDef);
|
|
106
|
+
var newTableDef = yield ldb.getStructure(tableDef.name);
|
|
107
|
+
compare(tableDef, newTableDef);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
it("put another structure", function () {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
this.timeout(10000);
|
|
113
|
+
var tableDef = {
|
|
114
|
+
name: 'other_name',
|
|
115
|
+
fields: [
|
|
116
|
+
{ name: 'pk2', typeName: 'text' }
|
|
117
|
+
],
|
|
118
|
+
primaryKey: ['pk2']
|
|
119
|
+
};
|
|
120
|
+
yield ldb.registerStructure(tableDef);
|
|
121
|
+
var newTableDef = yield ldb.getStructure(tableDef.name);
|
|
122
|
+
compare(tableDef, newTableDef);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
it("get all structures", function () {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
this.timeout(10000);
|
|
128
|
+
var tableDef1 = yield ldb.getStructure('this_name');
|
|
129
|
+
var tableDef2 = yield ldb.getStructure('other_name');
|
|
130
|
+
var tableDefs = yield ldb.getAllStructures();
|
|
131
|
+
compare([tableDef1, tableDef2], tableDefs);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe("data", function () {
|
|
136
|
+
var tableDef = {
|
|
137
|
+
name: 'phisical_quantities',
|
|
138
|
+
fields: [
|
|
139
|
+
{ name: 'quantity', typeName: 'text' },
|
|
140
|
+
{ name: 'preferedUnit', typeName: 'text' }
|
|
141
|
+
],
|
|
142
|
+
primaryKey: ['quantity']
|
|
143
|
+
};
|
|
144
|
+
var mass = { quantity: 'mass', preferedUnit: 'g' };
|
|
145
|
+
var quantities = [
|
|
146
|
+
mass,
|
|
147
|
+
{ quantity: 'time', preferedUnit: 's' },
|
|
148
|
+
{ quantity: 'volume', preferedUnit: 'l' },
|
|
149
|
+
];
|
|
150
|
+
before(function () {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
yield ldb.registerStructure(tableDef);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
it("put a value", function () {
|
|
156
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
157
|
+
var obtainedMass = yield ldb.putOne("phisical_quantities", mass);
|
|
158
|
+
compare(mass, obtainedMass);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
it("put many", function () {
|
|
162
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
yield ldb.putMany("phisical_quantities", quantities.slice(1));
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
it("check empty structure", function () {
|
|
167
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
+
var count = yield ldb.isEmpty("phisical_quantities");
|
|
169
|
+
compare(false, count);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
it("get one", function () {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
var volume = yield ldb.getOne("phisical_quantities", ["volume"]);
|
|
175
|
+
compare(volume, quantities[2]);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
it("get one if exists and exists", function () {
|
|
179
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
180
|
+
var time = yield ldb.getOneIfExists("phisical_quantities", ["time"]);
|
|
181
|
+
compare(time, quantities[1]);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
it("get one if exists and do not exists", function () {
|
|
185
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
186
|
+
var undef = yield ldb.getOneIfExists("phisical_quantities", ["fourth dimension"]);
|
|
187
|
+
compare(undef, undefined);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
it("get all", function () {
|
|
191
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
192
|
+
var all = yield ldb.getAll("phisical_quantities");
|
|
193
|
+
compare(all, quantities);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
it("clear all", function () {
|
|
197
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
198
|
+
yield ldb.clear("phisical_quantities");
|
|
199
|
+
var all = yield ldb.getAll("phisical_quantities");
|
|
200
|
+
compare(all, []);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
describe("childs", function () {
|
|
205
|
+
var tableDef = {
|
|
206
|
+
fields: [
|
|
207
|
+
{ name: 'quantity', typeName: 'text' },
|
|
208
|
+
{ name: 'unit', typeName: 'text' }
|
|
209
|
+
],
|
|
210
|
+
name: 'units',
|
|
211
|
+
primaryKey: ['quantity', 'unit']
|
|
212
|
+
};
|
|
213
|
+
var volumeUnits = [
|
|
214
|
+
{ quantity: 'volume', unit: 'ml' },
|
|
215
|
+
{ quantity: 'volume', unit: 'l' },
|
|
216
|
+
{ quantity: 'volume', unit: 'cm3' },
|
|
217
|
+
{ quantity: 'volume', unit: 'm3' },
|
|
218
|
+
];
|
|
219
|
+
var volumeUnitsSorted = [
|
|
220
|
+
{ quantity: 'volume', unit: 'cm3' },
|
|
221
|
+
{ quantity: 'volume', unit: 'l' },
|
|
222
|
+
{ quantity: 'volume', unit: 'm3' },
|
|
223
|
+
{ quantity: 'volume', unit: 'ml' },
|
|
224
|
+
];
|
|
225
|
+
var massUnits = [
|
|
226
|
+
{ quantity: 'mass', unit: 'g' },
|
|
227
|
+
{ quantity: 'mass', unit: 'kg' },
|
|
228
|
+
{ quantity: 'mass', unit: 'mg' },
|
|
229
|
+
];
|
|
230
|
+
var timeUnits = [
|
|
231
|
+
{ quantity: 'time', unit: 's' },
|
|
232
|
+
{ quantity: 'time', unit: 'h' },
|
|
233
|
+
];
|
|
234
|
+
var units = volumeUnits.concat(massUnits).concat(timeUnits);
|
|
235
|
+
before("", function () {
|
|
236
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
237
|
+
yield ldb.registerStructure(tableDef);
|
|
238
|
+
yield ldb.putMany("units", units);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
it("get cm3", function () {
|
|
242
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
243
|
+
var obtainedVolumes = yield ldb.getOne("units", ["volume", "cm3"]);
|
|
244
|
+
compare(obtainedVolumes, volumeUnits[2]);
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
it("get volume childs", function () {
|
|
248
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
249
|
+
var obtainedVolumes = yield ldb.getChild("units", ["volume"]);
|
|
250
|
+
compare(obtainedVolumes, volumeUnitsSorted);
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
it("get mass childs", function () {
|
|
254
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
255
|
+
var obtainedMass = yield ldb.getChild("units", ["mass"]);
|
|
256
|
+
compare(obtainedMass, massUnits);
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
describe("foreignKeys", function () {
|
|
261
|
+
this.timeout(10000);
|
|
262
|
+
var unitsTableDef = {
|
|
263
|
+
name: 'units',
|
|
264
|
+
fields: [
|
|
265
|
+
{ name: 'quantity', typeName: 'text' },
|
|
266
|
+
{ name: 'unit', typeName: 'text' },
|
|
267
|
+
{ name: 'description', typeName: 'text' }
|
|
268
|
+
],
|
|
269
|
+
primaryKey: ['quantity', 'unit']
|
|
270
|
+
};
|
|
271
|
+
var productsTableDef = {
|
|
272
|
+
name: 'products',
|
|
273
|
+
fields: [
|
|
274
|
+
{ name: 'product', typeName: 'text' },
|
|
275
|
+
{ name: 'name', typeName: 'text' },
|
|
276
|
+
{ name: 'price', typeName: 'decimal' },
|
|
277
|
+
{ name: 'quantity_number', typeName: 'integer' },
|
|
278
|
+
{ name: 'quantity', typeName: 'text' },
|
|
279
|
+
{ name: 'unit', typeName: 'text' },
|
|
280
|
+
{ name: 'units__description', typeName: 'text' }
|
|
281
|
+
],
|
|
282
|
+
primaryKey: ['product'],
|
|
283
|
+
foreignKeys: [{ references: 'units', fields: [{ source: 'quantity', target: 'quantity' }, { source: 'unit', target: 'unit' }], displayFields: ['description'], alias: 'units' }]
|
|
284
|
+
};
|
|
285
|
+
var volumeUnits = [
|
|
286
|
+
{ quantity: 'volume', unit: 'ml', description: 'millilitre' },
|
|
287
|
+
{ quantity: 'volume', unit: 'l', description: 'litre' },
|
|
288
|
+
{ quantity: 'volume', unit: 'cm3', description: 'cubic centimetre' },
|
|
289
|
+
{ quantity: 'volume', unit: 'm3', description: 'cubic metre' },
|
|
290
|
+
];
|
|
291
|
+
var massUnits = [
|
|
292
|
+
{ quantity: 'mass', unit: 'g', description: 'gram' },
|
|
293
|
+
{ quantity: 'mass', unit: 'kg', description: 'kilogram' },
|
|
294
|
+
{ quantity: 'mass', unit: 'mg', description: 'milligram' },
|
|
295
|
+
];
|
|
296
|
+
var timeUnits = [
|
|
297
|
+
{ quantity: 'time', unit: 's', description: 'second' },
|
|
298
|
+
{ quantity: 'time', unit: 'm', description: 'minute' },
|
|
299
|
+
{ quantity: 'time', unit: 'h', description: 'hour' },
|
|
300
|
+
];
|
|
301
|
+
var products = [
|
|
302
|
+
{ product: 'P11111', name: 'Gaseosa', price: 35.50, quantity_number: 750, quantity: 'volume', unit: 'cm3', units__description: 'cubic centimetre' },
|
|
303
|
+
{ product: 'P22222', name: 'Naranjas', price: 25, quantity_number: 1, quantity: 'mass', unit: 'kg', units__description: 'kilogram' },
|
|
304
|
+
{ product: 'P33333', name: 'Pelicula', price: 150, quantity_number: 1.5, quantity: 'time', unit: 'h', units__description: 'hour' },
|
|
305
|
+
];
|
|
306
|
+
var units = volumeUnits.concat(massUnits).concat(timeUnits);
|
|
307
|
+
before("", function () {
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
yield ldb.registerStructure(unitsTableDef);
|
|
310
|
+
yield ldb.registerStructure(productsTableDef);
|
|
311
|
+
yield ldb.putMany("units", units);
|
|
312
|
+
yield ldb.putMany("products", products);
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
it("get product and change unit", function () {
|
|
316
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
317
|
+
var myProduct = yield ldb.getOne("products", ["P11111"]);
|
|
318
|
+
myProduct.unit = 'ml';
|
|
319
|
+
var myChangedProduct = yield ldb.putOne("products", myProduct);
|
|
320
|
+
compare(myChangedProduct, (0, best_globals_1.changing)(products[0], { unit: 'ml', units__description: 'millilitre' }));
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
//# sourceMappingURL=karma-test-localdb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"karma-test-localdb.js","sourceRoot":"","sources":["karma-test-localdb.ts"],"names":[],"mappings":"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"}
|