remult 0.22.2 → 0.22.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/esm/graphql.js +27 -27
- package/esm/postgres/schema-builder.js +4 -4
- package/esm/remult-knex/index.js +2 -2
- package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +10 -0
- package/esm/src/id-entity.d.ts +4 -0
- package/esm/src/id-entity.js +8 -0
- package/esm/src/remult3/RepositoryImplementation.js +7 -5
- package/esm/src/shared-tests/db-tests.db-tests.js +35 -0
- package/package.json +1 -1
- package/postgres/postgresColumnSyntax.d.ts +2 -0
- package/postgres/postgresColumnSyntax.js +34 -0
- package/remult-knex/index.js +2 -2
- package/remult-middleware.d.ts +2 -0
- package/remult-middleware.js +70 -0
- package/server/register-actions-on-server.d.ts +3 -0
- package/server/register-actions-on-server.js +50 -0
- package/server/register-entities-on-server.d.ts +3 -0
- package/server/register-entities-on-server.js +19 -0
- package/src/backend-tests/backend-database-test-setup.backend-spec.js +10 -0
- package/{esm/core/src → src}/backend-tests/my-test.backend-spec.d.ts +1 -1
- package/src/backend-tests/my-test.backend-spec.js +217 -0
- package/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
- package/src/backend-tests/test-http-server.backend-spec.js +342 -0
- package/src/id-entity.d.ts +4 -0
- package/src/id-entity.js +17 -0
- package/src/remult3/RepositoryImplementation.js +15 -13
- package/src/shared-tests/db-tests.db-tests.js +64 -0
- package/{esm/core/src/valueConverters.d.ts → valueConverters.d.ts} +12 -13
- package/valueConverters.js +168 -0
- package/esm/angular/interfaces/index.d.ts +0 -1
- package/esm/angular/interfaces/index.js +0 -1
- package/esm/angular/interfaces/src/column-collection.d.ts +0 -70
- package/esm/angular/interfaces/src/column-collection.js +0 -341
- package/esm/angular/interfaces/src/data-area-settings.d.ts +0 -15
- package/esm/angular/interfaces/src/data-area-settings.js +0 -35
- package/esm/angular/interfaces/src/data-control-interfaces.d.ts +0 -36
- package/esm/angular/interfaces/src/data-control-interfaces.js +0 -57
- package/esm/angular/interfaces/src/dataList.d.ts +0 -13
- package/esm/angular/interfaces/src/dataList.js +0 -42
- package/esm/angular/interfaces/src/filter-helper.d.ts +0 -13
- package/esm/angular/interfaces/src/filter-helper.js +0 -59
- package/esm/angular/interfaces/src/grid-settings.d.ts +0 -145
- package/esm/angular/interfaces/src/grid-settings.js +0 -387
- package/esm/angular/interfaces/src/public_api.d.ts +0 -4
- package/esm/angular/interfaces/src/public_api.js +0 -4
- package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +0 -4
- package/esm/angular/src/angular/RemultAngularPluginsService.js +0 -3
- package/esm/angular/src/angular/data-control/data-control2.component.d.ts +0 -49
- package/esm/angular/src/angular/data-control/data-control2.component.js +0 -138
- package/esm/core/SseSubscriptionServer.d.ts +0 -33
- package/esm/core/SseSubscriptionServer.js +0 -107
- package/esm/core/assign.d.ts +0 -1
- package/esm/core/assign.js +0 -5
- package/esm/core/classType.d.ts +0 -3
- package/esm/core/classType.js +0 -1
- package/esm/core/index.d.ts +0 -27
- package/esm/core/index.js +0 -25
- package/esm/core/inputTypes.d.ts +0 -9
- package/esm/core/inputTypes.js +0 -9
- package/esm/core/live-query/data-provider-live-query-storage.d.ts +0 -22
- package/esm/core/live-query/data-provider-live-query-storage.js +0 -71
- package/esm/core/postgres/index.d.ts +0 -2
- package/esm/core/postgres/index.js +0 -2
- package/esm/core/postgres/postgres-data-provider.d.ts +0 -36
- package/esm/core/postgres/postgres-data-provider.js +0 -120
- package/esm/core/postgres/schema-builder.d.ts +0 -17
- package/esm/core/postgres/schema-builder.js +0 -153
- package/esm/core/remult-fresh.d.ts +0 -17
- package/esm/core/remult-fresh.js +0 -29
- package/esm/core/remult-knex/index.d.ts +0 -30
- package/esm/core/remult-knex/index.js +0 -446
- package/esm/core/remult-mongo.d.ts +0 -24
- package/esm/core/remult-mongo.js +0 -254
- package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
- package/esm/core/server/JsonEntityFileStorage.js +0 -25
- package/esm/core/server/core.d.ts +0 -4
- package/esm/core/server/core.js +0 -4
- package/esm/core/server/expressBridge.d.ts +0 -182
- package/esm/core/server/expressBridge.js +0 -938
- package/esm/core/server/index.d.ts +0 -6
- package/esm/core/server/index.js +0 -9
- package/esm/core/server/initAsyncHooks.d.ts +0 -1
- package/esm/core/server/initAsyncHooks.js +0 -9
- package/esm/core/server/initDataProvider.d.ts +0 -2
- package/esm/core/server/initDataProvider.js +0 -14
- package/esm/core/src/__EntityValueProvider.d.ts +0 -11
- package/esm/core/src/__EntityValueProvider.js +0 -1
- package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
- package/esm/core/src/__RowsOfDataForTesting.js +0 -1
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -147
- package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -197
- package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
- package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -167
- package/esm/core/src/buildRestDataProvider.d.ts +0 -31
- package/esm/core/src/buildRestDataProvider.js +0 -113
- package/esm/core/src/column-interfaces.d.ts +0 -154
- package/esm/core/src/column-interfaces.js +0 -7
- package/esm/core/src/column.d.ts +0 -58
- package/esm/core/src/column.js +0 -174
- package/esm/core/src/context.d.ts +0 -134
- package/esm/core/src/context.js +0 -286
- package/esm/core/src/data-api.d.ts +0 -39
- package/esm/core/src/data-api.js +0 -279
- package/esm/core/src/data-interfaces.d.ts +0 -41
- package/esm/core/src/data-interfaces.js +0 -12
- package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
- package/esm/core/src/data-providers/array-entity-data-provider.js +0 -252
- package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
- package/esm/core/src/data-providers/in-memory-database.js +0 -14
- package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
- package/esm/core/src/data-providers/json-data-provider.js +0 -55
- package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -49
- package/esm/core/src/data-providers/rest-data-provider.js +0 -256
- package/esm/core/src/data-providers/sql-database.d.ts +0 -33
- package/esm/core/src/data-providers/sql-database.js +0 -384
- package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -24
- package/esm/core/src/data-providers/web-sql-data-provider.js +0 -143
- package/esm/core/src/entity.d.ts +0 -91
- package/esm/core/src/entity.js +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -150
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
- package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
- package/esm/core/src/filter/filter-interfaces.js +0 -477
- package/esm/core/src/live-query/LiveQueryClient.d.ts +0 -20
- package/esm/core/src/live-query/LiveQueryClient.js +0 -188
- package/esm/core/src/live-query/SseSubscriptionClient.d.ts +0 -5
- package/esm/core/src/live-query/SseSubscriptionClient.js +0 -86
- package/esm/core/src/live-query/SubscriptionChannel.d.ts +0 -72
- package/esm/core/src/live-query/SubscriptionChannel.js +0 -123
- package/esm/core/src/live-query/SubscriptionServer.d.ts +0 -53
- package/esm/core/src/live-query/SubscriptionServer.js +0 -111
- package/esm/core/src/live-query/live-query-tests.spec.d.ts +0 -6
- package/esm/core/src/live-query/live-query-tests.spec.js +0 -952
- package/esm/core/src/remult-proxy.d.ts +0 -35
- package/esm/core/src/remult-proxy.js +0 -113
- package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
- package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
- package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -355
- package/esm/core/src/remult3/RepositoryImplementation.js +0 -2109
- package/esm/core/src/remult3/index.d.ts +0 -2
- package/esm/core/src/remult3/index.js +0 -2
- package/esm/core/src/remult3/remult3.d.ts +0 -395
- package/esm/core/src/remult3/remult3.js +0 -2
- package/esm/core/src/server-action.d.ts +0 -81
- package/esm/core/src/server-action.js +0 -394
- package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -32
- package/esm/core/src/shared-tests/db-tests-setup.js +0 -78
- package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -25
- package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -810
- package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
- package/esm/core/src/shared-tests/deleteAll.js +0 -4
- package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
- package/esm/core/src/shared-tests/entityWithValidations.js +0 -43
- package/esm/core/src/shared-tests/index.d.ts +0 -4
- package/esm/core/src/shared-tests/index.js +0 -4
- package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -67
- package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
- package/esm/core/src/shared-tests/test-special-value.spec.js +0 -73
- package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -31
- package/esm/core/src/sort.d.ts +0 -16
- package/esm/core/src/sort.js +0 -103
- package/esm/core/src/sql-command.d.ts +0 -19
- package/esm/core/src/sql-command.js +0 -1
- package/esm/core/src/test.d.ts +0 -3
- package/esm/core/src/test.js +0 -12
- package/esm/core/src/tests/Done.d.ts +0 -5
- package/esm/core/src/tests/Done.js +0 -9
- package/esm/core/src/tests/RowProvider.spec.d.ts +0 -16
- package/esm/core/src/tests/RowProvider.spec.js +0 -631
- package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
- package/esm/core/src/tests/TestDataApiResponse.js +0 -22
- package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +0 -8
- package/esm/core/src/tests/basicRowFunctionality.spec.js +0 -2103
- package/esm/core/src/tests/c.d.ts +0 -8
- package/esm/core/src/tests/c.js +0 -13
- package/esm/core/src/tests/createData.d.ts +0 -7
- package/esm/core/src/tests/createData.js +0 -22
- package/esm/core/src/tests/d.d.ts +0 -6
- package/esm/core/src/tests/d.js +0 -11
- package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
- package/esm/core/src/tests/dWithPrefilter.js +0 -18
- package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
- package/esm/core/src/tests/entityForCustomFilter.js +0 -33
- package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
- package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -13
- package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
- package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -37
- package/esm/core/src/tests/h.d.ts +0 -6
- package/esm/core/src/tests/h.js +0 -24
- package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +0 -1
- package/esm/core/src/tests/remult-3-basic-tests.spec.js +0 -236
- package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
- package/esm/core/src/tests/remult-3-entities.js +0 -39
- package/esm/core/src/tests/tasks.d.ts +0 -6
- package/esm/core/src/tests/tasks.js +0 -10
- package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
- package/esm/core/src/tests/test-context-as-storage.spec.js +0 -1
- package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +0 -1
- package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +0 -389
- package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +0 -5
- package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +0 -152
- package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +0 -1
- package/esm/core/src/tests/test-decorator-precedence.spec.js +0 -38
- package/esm/core/src/tests/test-default-value.spec.d.ts +0 -1
- package/esm/core/src/tests/test-default-value.spec.js +0 -33
- package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +0 -14
- package/esm/core/src/tests/test-entity-inheritance.spec.js +0 -82
- package/esm/core/src/tests/test-exceptions.spec.d.ts +0 -1
- package/esm/core/src/tests/test-exceptions.spec.js +0 -375
- package/esm/core/src/tests/test-json.spec.d.ts +0 -1
- package/esm/core/src/tests/test-json.spec.js +0 -115
- package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +0 -9
- package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +0 -809
- package/esm/core/src/tests/test-non-active-record.spec.d.ts +0 -1
- package/esm/core/src/tests/test-non-active-record.spec.js +0 -66
- package/esm/core/src/tests/test-object-column.spec.d.ts +0 -1
- package/esm/core/src/tests/test-object-column.spec.js +0 -189
- package/esm/core/src/tests/test-paged-foreach.spec.d.ts +0 -1
- package/esm/core/src/tests/test-paged-foreach.spec.js +0 -328
- package/esm/core/src/tests/test-remult-angular.spec.d.ts +0 -1
- package/esm/core/src/tests/test-remult-angular.spec.js +0 -23
- package/esm/core/src/tests/test-server-controller.spec.d.ts +0 -7
- package/esm/core/src/tests/test-server-controller.spec.js +0 -489
- package/esm/core/src/tests/test-server-expressions.spec.d.ts +0 -1
- package/esm/core/src/tests/test-server-expressions.spec.js +0 -178
- package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +0 -1
- package/esm/core/src/tests/test-server-method-on-entity.spec.js +0 -306
- package/esm/core/src/tests/test-sql-expression.spec.d.ts +0 -5
- package/esm/core/src/tests/test-sql-expression.spec.js +0 -205
- package/esm/core/src/tests/test-sql.spec.d.ts +0 -1
- package/esm/core/src/tests/test-sql.spec.js +0 -170
- package/esm/core/src/tests/test-subscribe.spec.d.ts +0 -1
- package/esm/core/src/tests/test-subscribe.spec.js +0 -135
- package/esm/core/src/tests/test-type-recovery.spec.d.ts +0 -1
- package/esm/core/src/tests/test-type-recovery.spec.js +0 -49
- package/esm/core/src/tests/test-where-api.spec.d.ts +0 -1
- package/esm/core/src/tests/test-where-api.spec.js +0 -434
- package/esm/core/src/tests/testHelper.spec.d.ts +0 -36
- package/esm/core/src/tests/testHelper.spec.js +0 -226
- package/esm/core/src/tests/testModel/models.d.ts +0 -16
- package/esm/core/src/tests/testModel/models.js +0 -25
- package/esm/core/src/validators.d.ts +0 -14
- package/esm/core/src/validators.js +0 -33
- package/esm/core/src/valueConverters.js +0 -197
- package/esm/core/urlBuilder.d.ts +0 -6
- package/esm/core/urlBuilder.js +0 -20
- package/esm/test-servers/shared/Task.d.ts +0 -9
- package/esm/test-servers/shared/Task.js +0 -32
- package/esm/test.d.ts +0 -5
- package/esm/test.js +0 -6
|
@@ -1,489 +0,0 @@
|
|
|
1
|
-
import { ActionTestConfig, testAsIfOnBackend } from './testHelper.spec';
|
|
2
|
-
import { Remult, isBackend } from '../context';
|
|
3
|
-
import { prepareArgsToSend, Controller, BackendMethod } from '../server-action';
|
|
4
|
-
import { Field, Entity, getFields, ValueListFieldType, Fields, IdEntity } from '../remult3';
|
|
5
|
-
import { remult, RemultProxy } from '../remult-proxy';
|
|
6
|
-
import { describeClass } from '../remult3/DecoratorReplacer';
|
|
7
|
-
import { InMemoryDataProvider } from '../data-providers/in-memory-database';
|
|
8
|
-
@ValueListFieldType()
|
|
9
|
-
export class myType {
|
|
10
|
-
what;
|
|
11
|
-
static x = new myType((n) => 'x' + n);
|
|
12
|
-
static y = new myType((n) => 'y' + n);
|
|
13
|
-
id;
|
|
14
|
-
constructor(what) {
|
|
15
|
-
this.what = what;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
@Entity('testEntity')
|
|
19
|
-
class testEntity extends IdEntity {
|
|
20
|
-
@Fields.string()
|
|
21
|
-
name;
|
|
22
|
-
@BackendMethod({ allowed: false })
|
|
23
|
-
async forbidden() {
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
@Controller('1')
|
|
27
|
-
class testBasics {
|
|
28
|
-
remult;
|
|
29
|
-
constructor(remult) {
|
|
30
|
-
this.remult = remult;
|
|
31
|
-
}
|
|
32
|
-
@Fields.date()
|
|
33
|
-
theDate;
|
|
34
|
-
@Field(() => myType)
|
|
35
|
-
myType;
|
|
36
|
-
@Field(() => testEntity)
|
|
37
|
-
myEntity;
|
|
38
|
-
@BackendMethod({ allowed: true })
|
|
39
|
-
async testDate() {
|
|
40
|
-
return this.theDate.getFullYear();
|
|
41
|
-
}
|
|
42
|
-
@BackendMethod({ allowed: true })
|
|
43
|
-
async testDataType(n) {
|
|
44
|
-
return this.myType.what(n);
|
|
45
|
-
}
|
|
46
|
-
@BackendMethod({ allowed: false })
|
|
47
|
-
async forbidden() {
|
|
48
|
-
}
|
|
49
|
-
@BackendMethod({ allowed: true })
|
|
50
|
-
async sendEntityAsParamter() {
|
|
51
|
-
return this.myEntity.name;
|
|
52
|
-
}
|
|
53
|
-
static test;
|
|
54
|
-
@Fields.string({
|
|
55
|
-
validate: (y, x) => {
|
|
56
|
-
if (y.a == "errorc") {
|
|
57
|
-
x.error = "error on client";
|
|
58
|
-
}
|
|
59
|
-
else if (y.a == "error on server" && isBackend()) {
|
|
60
|
-
x.error = "error on server";
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
})
|
|
64
|
-
a;
|
|
65
|
-
@BackendMethod({ allowed: true })
|
|
66
|
-
async doIt() {
|
|
67
|
-
let result = 'hello ' + this.a;
|
|
68
|
-
this.a = 'yael';
|
|
69
|
-
return {
|
|
70
|
-
onServer: isBackend(),
|
|
71
|
-
result
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
@BackendMethod({ allowed: true })
|
|
75
|
-
static async sf(name, remult) {
|
|
76
|
-
return {
|
|
77
|
-
onServer: isBackend(),
|
|
78
|
-
result: 'hello ' + name
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
@BackendMethod({ allowed: true })
|
|
82
|
-
static async testDate(d) {
|
|
83
|
-
return d.getFullYear();
|
|
84
|
-
}
|
|
85
|
-
@BackendMethod({ allowed: false })
|
|
86
|
-
static async testForbidden2() {
|
|
87
|
-
}
|
|
88
|
-
@BackendMethod({ allowed: true })
|
|
89
|
-
static async testDataType(d, n) {
|
|
90
|
-
return d.what(n);
|
|
91
|
-
}
|
|
92
|
-
@BackendMethod({ allowed: true })
|
|
93
|
-
static async getValFromServer(remult) {
|
|
94
|
-
return (await remult.repo(testEntity).findFirst()).name;
|
|
95
|
-
}
|
|
96
|
-
static async staticBackendMethodWithoutDecorator() {
|
|
97
|
-
return isBackend();
|
|
98
|
-
}
|
|
99
|
-
static async staticBackendMethodWithoutDecoratorWithRemult(remult) {
|
|
100
|
-
return (await remult.repo(testEntity).findFirst()).name;
|
|
101
|
-
}
|
|
102
|
-
async backendMethodWithoutDecorator() {
|
|
103
|
-
return isBackend();
|
|
104
|
-
}
|
|
105
|
-
async backendMethodWithoutDecoratorWithRemult(remult) {
|
|
106
|
-
return (await remult.repo(testEntity).findFirst()).name + this.a;
|
|
107
|
-
}
|
|
108
|
-
@BackendMethod({ allowed: true })
|
|
109
|
-
static async sendEntityAsParamter(entity) {
|
|
110
|
-
if (entity === null)
|
|
111
|
-
return "null";
|
|
112
|
-
return entity.name;
|
|
113
|
-
}
|
|
114
|
-
@BackendMethod({ allowed: true })
|
|
115
|
-
static async syntaxError() {
|
|
116
|
-
let z = undefined;
|
|
117
|
-
return z.toString();
|
|
118
|
-
}
|
|
119
|
-
@BackendMethod({ allowed: true })
|
|
120
|
-
async syntaxError() {
|
|
121
|
-
let z = undefined;
|
|
122
|
-
return z.toString();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
describeClass(testBasics, undefined, undefined, {
|
|
126
|
-
staticBackendMethodWithoutDecorator: BackendMethod({ allowed: true })
|
|
127
|
-
});
|
|
128
|
-
describeClass(testBasics, undefined, undefined, {
|
|
129
|
-
staticBackendMethodWithoutDecoratorWithRemult: BackendMethod({ allowed: true, paramTypes: [Remult] })
|
|
130
|
-
});
|
|
131
|
-
describeClass(testBasics, undefined, {
|
|
132
|
-
backendMethodWithoutDecorator: BackendMethod({ allowed: true })
|
|
133
|
-
});
|
|
134
|
-
describeClass(testBasics, undefined, {
|
|
135
|
-
backendMethodWithoutDecoratorWithRemult: BackendMethod({ allowed: true, paramTypes: [Remult] })
|
|
136
|
-
});
|
|
137
|
-
class Stam {
|
|
138
|
-
@BackendMethod({ allowed: false })
|
|
139
|
-
static async testForbidden1() {
|
|
140
|
-
console.log("I am in forbidden");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
describe("test Server Controller basics", () => {
|
|
144
|
-
let c = new Remult();
|
|
145
|
-
c.dataProvider = (ActionTestConfig.db);
|
|
146
|
-
beforeEach(async (done) => {
|
|
147
|
-
await Promise.all((await c.repo(testEntity).find()).map(x => x.delete()));
|
|
148
|
-
done();
|
|
149
|
-
});
|
|
150
|
-
it("forbidden static backend", async () => {
|
|
151
|
-
let ok = true;
|
|
152
|
-
try {
|
|
153
|
-
await Stam.testForbidden1();
|
|
154
|
-
ok = false;
|
|
155
|
-
}
|
|
156
|
-
catch (err) {
|
|
157
|
-
expect(err.httpStatusCode).toBe(403);
|
|
158
|
-
}
|
|
159
|
-
expect(ok).toBe(true);
|
|
160
|
-
});
|
|
161
|
-
it("forbidden static backend", async () => {
|
|
162
|
-
let ok = true;
|
|
163
|
-
try {
|
|
164
|
-
await testBasics.testForbidden2();
|
|
165
|
-
ok = false;
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
expect(err.httpStatusCode).toBe(403);
|
|
169
|
-
}
|
|
170
|
-
expect(ok).toBe(true);
|
|
171
|
-
});
|
|
172
|
-
it("forbidden static backend", async () => {
|
|
173
|
-
let ok = true;
|
|
174
|
-
try {
|
|
175
|
-
await testBasics.testForbidden2();
|
|
176
|
-
ok = false;
|
|
177
|
-
}
|
|
178
|
-
catch (err) {
|
|
179
|
-
expect(err.httpStatusCode).toBe(403);
|
|
180
|
-
}
|
|
181
|
-
expect(ok).toBe(true);
|
|
182
|
-
});
|
|
183
|
-
it("forbidden backend", async () => {
|
|
184
|
-
let ok = true;
|
|
185
|
-
try {
|
|
186
|
-
await new testBasics(c).forbidden();
|
|
187
|
-
ok = false;
|
|
188
|
-
}
|
|
189
|
-
catch (err) {
|
|
190
|
-
expect(err.httpStatusCode).toBe(403);
|
|
191
|
-
}
|
|
192
|
-
expect(ok).toBe(true);
|
|
193
|
-
});
|
|
194
|
-
it("forbidden entity", async () => {
|
|
195
|
-
let ok = true;
|
|
196
|
-
try {
|
|
197
|
-
await remult.repo(testEntity).create().forbidden();
|
|
198
|
-
ok = false;
|
|
199
|
-
}
|
|
200
|
-
catch (err) {
|
|
201
|
-
expect(err.httpStatusCode).toBe(403);
|
|
202
|
-
}
|
|
203
|
-
expect(ok).toBe(true);
|
|
204
|
-
});
|
|
205
|
-
it("test error", async () => {
|
|
206
|
-
try {
|
|
207
|
-
await testBasics.syntaxError();
|
|
208
|
-
}
|
|
209
|
-
catch (err) {
|
|
210
|
-
expect(err.message).toContain("Cannot read prop");
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
it("test error server method", async () => {
|
|
214
|
-
try {
|
|
215
|
-
await new testBasics(c).syntaxError();
|
|
216
|
-
}
|
|
217
|
-
catch (err) {
|
|
218
|
-
expect(err.message).toContain("Cannot read prop");
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
it("send entity to server ", async () => {
|
|
222
|
-
let e = await c.repo(testEntity).create({ name: 'test' }).save();
|
|
223
|
-
expect(await testBasics.sendEntityAsParamter(e)).toBe('test');
|
|
224
|
-
});
|
|
225
|
-
it("send entity to server ", async () => {
|
|
226
|
-
expect(await testBasics.sendEntityAsParamter(null)).toBe('null');
|
|
227
|
-
});
|
|
228
|
-
it("send entity to server prepare args to send ", async () => {
|
|
229
|
-
let e = await c.repo(testEntity).create({ name: 'test' }).save();
|
|
230
|
-
expect(prepareArgsToSend([testEntity], [e])[0]).toBe(e.id);
|
|
231
|
-
});
|
|
232
|
-
it("data is saved on server", async () => {
|
|
233
|
-
await c.repo(testEntity).create({ name: 'test' }).save();
|
|
234
|
-
expect(await testBasics.getValFromServer()).toBe('test');
|
|
235
|
-
});
|
|
236
|
-
it("new backend method syntax static method with remult", async () => {
|
|
237
|
-
await c.repo(testEntity).create({ name: 'test' }).save();
|
|
238
|
-
expect(await testBasics.staticBackendMethodWithoutDecoratorWithRemult()).toBe('test');
|
|
239
|
-
});
|
|
240
|
-
it("new backend method syntax static method", async () => {
|
|
241
|
-
expect(await testBasics.staticBackendMethodWithoutDecorator()).toBe(true);
|
|
242
|
-
});
|
|
243
|
-
it("new backend method syntax 1", async () => {
|
|
244
|
-
expect(await new testBasics(undefined).backendMethodWithoutDecorator()).toBe(true);
|
|
245
|
-
});
|
|
246
|
-
it("new backend method syntax 2", async () => {
|
|
247
|
-
await c.repo(testEntity).create({ name: 'test' }).save();
|
|
248
|
-
const z = new testBasics(undefined);
|
|
249
|
-
z.a = 'x';
|
|
250
|
-
expect(await z.backendMethodWithoutDecoratorWithRemult()).toBe('testx');
|
|
251
|
-
});
|
|
252
|
-
it("test backend method caller", async () => {
|
|
253
|
-
const c = new Remult({
|
|
254
|
-
url: "xx", httpClient: {
|
|
255
|
-
delete: () => undefined,
|
|
256
|
-
get: () => undefined,
|
|
257
|
-
post: async (url, data) => {
|
|
258
|
-
expect(url).toBe("xx/sf");
|
|
259
|
-
expect(data.args[0]).toEqual("noam");
|
|
260
|
-
return { data: { result: "hello noam" } };
|
|
261
|
-
},
|
|
262
|
-
put: () => undefined
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
const r = (await c.call(testBasics.sf, undefined, "noam"));
|
|
266
|
-
expect(r.result).toBe("hello noam");
|
|
267
|
-
});
|
|
268
|
-
it("test backend method caller with proxy", async () => {
|
|
269
|
-
const p = new RemultProxy();
|
|
270
|
-
{
|
|
271
|
-
const c = new Remult({
|
|
272
|
-
url: "xx", httpClient: {
|
|
273
|
-
delete: () => undefined,
|
|
274
|
-
get: () => undefined,
|
|
275
|
-
post: async (url, data) => {
|
|
276
|
-
expect(url).toBe("xx/sf");
|
|
277
|
-
expect(data.args[0]).toEqual("noam");
|
|
278
|
-
return { data: { result: "hello noam" } };
|
|
279
|
-
},
|
|
280
|
-
put: () => undefined
|
|
281
|
-
}
|
|
282
|
-
});
|
|
283
|
-
p.remultFactory = () => c;
|
|
284
|
-
}
|
|
285
|
-
const r = (await p.call(testBasics.sf, undefined, "noam"));
|
|
286
|
-
expect(r.result).toBe("hello noam");
|
|
287
|
-
});
|
|
288
|
-
it("test backend method instance method", async () => {
|
|
289
|
-
const c = new Remult({
|
|
290
|
-
url: "xx", httpClient: {
|
|
291
|
-
delete: () => undefined,
|
|
292
|
-
get: () => undefined,
|
|
293
|
-
post: async (url, data) => {
|
|
294
|
-
expect(url).toBe("xx/1/doIt");
|
|
295
|
-
return { result: { result: "hello noam" }, fields: {} };
|
|
296
|
-
},
|
|
297
|
-
put: () => undefined
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
const b = new testBasics(remult);
|
|
301
|
-
const r = (await c.call(b.doIt, b));
|
|
302
|
-
expect(r.result).toBe("hello noam");
|
|
303
|
-
});
|
|
304
|
-
it("test backend method instance method with proxy", async () => {
|
|
305
|
-
const c = new Remult({
|
|
306
|
-
url: "xx", httpClient: {
|
|
307
|
-
delete: () => undefined,
|
|
308
|
-
get: () => undefined,
|
|
309
|
-
post: async (url, data) => {
|
|
310
|
-
expect(url).toBe("xx/1/doIt");
|
|
311
|
-
return { result: { result: "hello noam" }, fields: {} };
|
|
312
|
-
},
|
|
313
|
-
put: () => undefined
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
const p = new RemultProxy();
|
|
317
|
-
p.remultFactory = () => c;
|
|
318
|
-
const b = new testBasics(remult);
|
|
319
|
-
const r = (await p.call(b.doIt, b));
|
|
320
|
-
expect(r.result).toBe("hello noam");
|
|
321
|
-
});
|
|
322
|
-
it("test server function", async () => {
|
|
323
|
-
let r = await testBasics.sf("noam");
|
|
324
|
-
expect(r.onServer).toBe(true);
|
|
325
|
-
expect(r.result).toBe('hello noam');
|
|
326
|
-
});
|
|
327
|
-
it("test server function on server", async () => {
|
|
328
|
-
await testAsIfOnBackend(async () => {
|
|
329
|
-
let r = await testBasics.sf("noam");
|
|
330
|
-
expect(r.onServer).toBe(true);
|
|
331
|
-
expect(r.result).toBe('hello noam');
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
it("test server Method Date", async () => {
|
|
335
|
-
let tb = new testBasics(c);
|
|
336
|
-
tb.theDate = new Date(1976, 6, 16);
|
|
337
|
-
expect(await tb.testDate()).toBe(1976);
|
|
338
|
-
});
|
|
339
|
-
it("test server Method Date on server", async () => {
|
|
340
|
-
let tb = new testBasics(c);
|
|
341
|
-
tb.theDate = new Date(1976, 6, 16);
|
|
342
|
-
await testAsIfOnBackend(async () => {
|
|
343
|
-
expect(await tb.testDate()).toBe(1976);
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
it("test server Method myType", async () => {
|
|
347
|
-
let tb = new testBasics(c);
|
|
348
|
-
tb.myType = myType.y;
|
|
349
|
-
expect(await tb.testDataType(7)).toBe('y7');
|
|
350
|
-
});
|
|
351
|
-
it("test server method entity", async () => {
|
|
352
|
-
let e = await c.repo(testEntity).create({ name: 'test3' }).save();
|
|
353
|
-
let tb = new testBasics(c);
|
|
354
|
-
tb.myEntity = e;
|
|
355
|
-
expect(await tb.sendEntityAsParamter()).toBe('test3');
|
|
356
|
-
});
|
|
357
|
-
it("test server function Date", async () => {
|
|
358
|
-
let r = await testBasics.testDate(new Date(1976, 6, 16));
|
|
359
|
-
expect(r).toBe(1976);
|
|
360
|
-
});
|
|
361
|
-
it("test server function custom type", async () => {
|
|
362
|
-
let r = await testBasics.testDataType(myType.y, 2);
|
|
363
|
-
expect(r).toBe('y2');
|
|
364
|
-
});
|
|
365
|
-
it("test server method", async () => {
|
|
366
|
-
let x = new testBasics(new Remult());
|
|
367
|
-
x.a = 'Noam';
|
|
368
|
-
let r = await x.doIt();
|
|
369
|
-
expect(r.onServer).toBe(true);
|
|
370
|
-
expect(r.result).toBe('hello Noam');
|
|
371
|
-
expect(x.a).toBe("yael");
|
|
372
|
-
});
|
|
373
|
-
it("test validation method", async () => {
|
|
374
|
-
let x = new testBasics(new Remult());
|
|
375
|
-
x.a = 'errorc';
|
|
376
|
-
let happened = false;
|
|
377
|
-
try {
|
|
378
|
-
let r = await x.doIt();
|
|
379
|
-
happened = true;
|
|
380
|
-
}
|
|
381
|
-
catch (err) {
|
|
382
|
-
expect(err.modelState.a).toBe("error on client");
|
|
383
|
-
expect(getFields(x).a.error).toBe("error on client");
|
|
384
|
-
}
|
|
385
|
-
expect(happened).toBe(false);
|
|
386
|
-
});
|
|
387
|
-
it("test validation on server", async () => {
|
|
388
|
-
let x = new testBasics(new Remult());
|
|
389
|
-
x.a = "error on server";
|
|
390
|
-
let happened = false;
|
|
391
|
-
try {
|
|
392
|
-
let r = await x.doIt();
|
|
393
|
-
happened = true;
|
|
394
|
-
}
|
|
395
|
-
catch (err) {
|
|
396
|
-
expect(err.modelState.a).toBe("error on server");
|
|
397
|
-
expect(getFields(x).a.error).toBe("error on server");
|
|
398
|
-
}
|
|
399
|
-
expect(happened).toBe(false);
|
|
400
|
-
});
|
|
401
|
-
it("test static backend method ", async () => {
|
|
402
|
-
const myClass = class {
|
|
403
|
-
static async doSomething2222() {
|
|
404
|
-
return isBackend().toString();
|
|
405
|
-
}
|
|
406
|
-
};
|
|
407
|
-
describeClass(myClass, undefined, undefined, {
|
|
408
|
-
doSomething2222: BackendMethod({ allowed: true, apiPrefix: 'myPrefix' }),
|
|
409
|
-
});
|
|
410
|
-
expect(await myClass.doSomething2222()).toBe("true");
|
|
411
|
-
});
|
|
412
|
-
it("test backend method with adhoc entity", async () => {
|
|
413
|
-
const myClass = class {
|
|
414
|
-
id = 0;
|
|
415
|
-
name = '';
|
|
416
|
-
async doSomething() {
|
|
417
|
-
return this.name + isBackend();
|
|
418
|
-
}
|
|
419
|
-
};
|
|
420
|
-
describeClass(myClass, Controller('addHocController'), {
|
|
421
|
-
id: Fields.autoIncrement(),
|
|
422
|
-
name: Fields.string(),
|
|
423
|
-
doSomething: BackendMethod({ allowed: true }),
|
|
424
|
-
});
|
|
425
|
-
const x = new myClass();
|
|
426
|
-
x.name = "123";
|
|
427
|
-
expect(await x.doSomething()).toBe("123true");
|
|
428
|
-
});
|
|
429
|
-
it("test static backend method with adhoc controller", async () => {
|
|
430
|
-
const myClass = class {
|
|
431
|
-
id = 0;
|
|
432
|
-
name = '';
|
|
433
|
-
static async adHockDoSomething() {
|
|
434
|
-
return isBackend();
|
|
435
|
-
}
|
|
436
|
-
};
|
|
437
|
-
describeClass(myClass, Controller('addHocController1'), {
|
|
438
|
-
id: Fields.autoIncrement(),
|
|
439
|
-
name: Fields.string()
|
|
440
|
-
}, {
|
|
441
|
-
adHockDoSomething: BackendMethod({ allowed: true }),
|
|
442
|
-
});
|
|
443
|
-
expect(await myClass.adHockDoSomething()).toBe(true);
|
|
444
|
-
});
|
|
445
|
-
it("test remult proxy for repository", async () => {
|
|
446
|
-
let remult1 = new Remult(new InMemoryDataProvider());
|
|
447
|
-
await remult1.repo(testEntity).insert({ name: "a" });
|
|
448
|
-
let remult2 = new Remult(new InMemoryDataProvider());
|
|
449
|
-
let remultProxy = new RemultProxy();
|
|
450
|
-
let repo = remultProxy.repo(testEntity);
|
|
451
|
-
remultProxy.remultFactory = () => remult1;
|
|
452
|
-
expect(await repo.count()).toBe(1);
|
|
453
|
-
remultProxy.remultFactory = () => remult2;
|
|
454
|
-
expect(await repo.count()).toBe(0);
|
|
455
|
-
let z = await repo.save({ name: "b" });
|
|
456
|
-
expect(z.name).toBe("b");
|
|
457
|
-
expect(await repo.count()).toBe(1);
|
|
458
|
-
remultProxy.remultFactory = () => remult1;
|
|
459
|
-
expect(await repo.find({
|
|
460
|
-
where: {
|
|
461
|
-
name: "b"
|
|
462
|
-
}
|
|
463
|
-
})).toEqual([]);
|
|
464
|
-
});
|
|
465
|
-
});
|
|
466
|
-
describe("controller with extends ", () => {
|
|
467
|
-
it("test inheritance in controllers", async () => {
|
|
468
|
-
let c = new child();
|
|
469
|
-
c.childField = 'c';
|
|
470
|
-
c.parentField = 'p';
|
|
471
|
-
let r = await c.run();
|
|
472
|
-
expect(r.c).toBe('c');
|
|
473
|
-
expect(r.p).toBe('p');
|
|
474
|
-
});
|
|
475
|
-
});
|
|
476
|
-
@Controller("parent")
|
|
477
|
-
class parent {
|
|
478
|
-
@Fields.string()
|
|
479
|
-
parentField;
|
|
480
|
-
}
|
|
481
|
-
@Controller("child")
|
|
482
|
-
class child extends parent {
|
|
483
|
-
@Fields.string()
|
|
484
|
-
childField;
|
|
485
|
-
@BackendMethod({ allowed: true })
|
|
486
|
-
run() {
|
|
487
|
-
return { p: this.parentField, c: this.childField };
|
|
488
|
-
}
|
|
489
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { Remult } from '../context';
|
|
2
|
-
import { InMemoryDataProvider } from '../data-providers/in-memory-database';
|
|
3
|
-
import { dbNamesOf } from '../filter/filter-consumer-bridge-to-sql-request';
|
|
4
|
-
import { remult } from '../remult-proxy';
|
|
5
|
-
import { Entity, EntityBase, Fields } from '../remult3';
|
|
6
|
-
import { describeClass } from '../remult3/DecoratorReplacer';
|
|
7
|
-
import { actionInfo } from '../server-action';
|
|
8
|
-
describe("test server expression value", () => {
|
|
9
|
-
beforeEach(() => actionInfo.runningOnServer = true);
|
|
10
|
-
afterEach(() => actionInfo.runningOnServer = false);
|
|
11
|
-
it("test basics create", async () => {
|
|
12
|
-
let c = new Remult();
|
|
13
|
-
c.dataProvider = (new InMemoryDataProvider());
|
|
14
|
-
testServerExpression.testVal = 1;
|
|
15
|
-
testServerExpression.testVal2 = 11;
|
|
16
|
-
let r = c.repo(testServerExpression).create();
|
|
17
|
-
r.code = 5;
|
|
18
|
-
await r._.save();
|
|
19
|
-
expect(r.test).toBe(1);
|
|
20
|
-
expect(r.testPromise).toBe(11);
|
|
21
|
-
expect(testServerExpression.testVal).toBe(2);
|
|
22
|
-
expect(testServerExpression.testVal2).toBe(12);
|
|
23
|
-
});
|
|
24
|
-
it("test basics find", async () => {
|
|
25
|
-
let c = new Remult();
|
|
26
|
-
c.dataProvider = (new InMemoryDataProvider());
|
|
27
|
-
testServerExpression.testVal = 1;
|
|
28
|
-
testServerExpression.testVal2 = 11;
|
|
29
|
-
let r = c.repo(testServerExpression).create();
|
|
30
|
-
r.code = 5;
|
|
31
|
-
await r._.save();
|
|
32
|
-
testServerExpression.testVal = 1;
|
|
33
|
-
testServerExpression.testVal2 = 11;
|
|
34
|
-
r = (await c.repo(testServerExpression).find({}))[0];
|
|
35
|
-
expect(r.test).toBe(1);
|
|
36
|
-
expect(r.testPromise).toBe(11);
|
|
37
|
-
expect(testServerExpression.testVal).toBe(2);
|
|
38
|
-
expect(testServerExpression.testVal2).toBe(12);
|
|
39
|
-
});
|
|
40
|
-
it("test doesnt calc on client", async () => {
|
|
41
|
-
actionInfo.runningOnServer = false;
|
|
42
|
-
let c = new Remult();
|
|
43
|
-
c.dataProvider = (new InMemoryDataProvider());
|
|
44
|
-
testServerExpression.testVal = 1;
|
|
45
|
-
testServerExpression.testVal2 = 11;
|
|
46
|
-
let r = c.repo(testServerExpression).create();
|
|
47
|
-
r.code = 5;
|
|
48
|
-
await r._.save();
|
|
49
|
-
expect(r.test).toBe(undefined);
|
|
50
|
-
expect(r.testPromise).toBe(undefined);
|
|
51
|
-
expect(testServerExpression.testVal).toBe(1);
|
|
52
|
-
expect(testServerExpression.testVal2).toBe(11);
|
|
53
|
-
});
|
|
54
|
-
it("test basics find doesnt calc on client", async () => {
|
|
55
|
-
actionInfo.runningOnServer = false;
|
|
56
|
-
let c = new Remult();
|
|
57
|
-
c.dataProvider = (new InMemoryDataProvider());
|
|
58
|
-
let r = c.repo(testServerExpression).create();
|
|
59
|
-
r.code = 5;
|
|
60
|
-
await r._.save();
|
|
61
|
-
testServerExpression.testVal = 1;
|
|
62
|
-
testServerExpression.testVal2 = 11;
|
|
63
|
-
r = (await c.repo(testServerExpression).find({}))[0];
|
|
64
|
-
expect(r.test).toBe(undefined);
|
|
65
|
-
expect(r.testPromise).toBe(undefined);
|
|
66
|
-
expect(testServerExpression.testVal).toBe(1);
|
|
67
|
-
expect(testServerExpression.testVal2).toBe(11);
|
|
68
|
-
});
|
|
69
|
-
it("test uuid", async () => {
|
|
70
|
-
const e = class {
|
|
71
|
-
id = '';
|
|
72
|
-
num = 0;
|
|
73
|
-
};
|
|
74
|
-
describeClass(e, Entity("x"), {
|
|
75
|
-
id: Fields.uuid(),
|
|
76
|
-
num: Fields.number()
|
|
77
|
-
});
|
|
78
|
-
const repo = new Remult(new InMemoryDataProvider()).repo(e);
|
|
79
|
-
let item = await repo.insert({ num: 1 });
|
|
80
|
-
expect(item.id.length).toBe(36, item.id);
|
|
81
|
-
item = await repo.insert({ id: '123', num: 2 });
|
|
82
|
-
expect(item.id).toBe('123');
|
|
83
|
-
});
|
|
84
|
-
it("test cuid", async () => {
|
|
85
|
-
const e = class {
|
|
86
|
-
id = '';
|
|
87
|
-
num = 0;
|
|
88
|
-
};
|
|
89
|
-
describeClass(e, Entity("x"), {
|
|
90
|
-
id: Fields.cuid(),
|
|
91
|
-
num: Fields.number()
|
|
92
|
-
});
|
|
93
|
-
const repo = new Remult(new InMemoryDataProvider()).repo(e);
|
|
94
|
-
let item = await repo.insert({ num: 1 });
|
|
95
|
-
expect(item.id.length).toBe(24, item.id);
|
|
96
|
-
item = await repo.insert({ id: '123', num: 2 });
|
|
97
|
-
expect(item.id).toBe('123');
|
|
98
|
-
});
|
|
99
|
-
it("test createdAt", async () => {
|
|
100
|
-
const e = class {
|
|
101
|
-
id = 1;
|
|
102
|
-
createdAt;
|
|
103
|
-
updatedAt;
|
|
104
|
-
val = 0;
|
|
105
|
-
};
|
|
106
|
-
describeClass(e, Entity("x"), {
|
|
107
|
-
id: Fields.autoIncrement(),
|
|
108
|
-
createdAt: Fields.createdAt(),
|
|
109
|
-
updatedAt: Fields.updatedAt(),
|
|
110
|
-
val: Fields.number()
|
|
111
|
-
});
|
|
112
|
-
const repo = new Remult(new InMemoryDataProvider()).repo(e);
|
|
113
|
-
let item = await repo.insert({});
|
|
114
|
-
expect(item.createdAt.toDateString()).toBe(new Date().toDateString());
|
|
115
|
-
expect(Math.abs((item.updatedAt.valueOf() - item.createdAt.valueOf()))).toBeLessThan(5);
|
|
116
|
-
let c = item.createdAt;
|
|
117
|
-
await new Promise(res => setTimeout(() => {
|
|
118
|
-
res({});
|
|
119
|
-
}, 10));
|
|
120
|
-
item = await repo.save({ ...item, val: 3 });
|
|
121
|
-
expect(item.val).toBe(3);
|
|
122
|
-
expect(item.createdAt).toEqual(c);
|
|
123
|
-
expect(item.createdAt).not.toEqual(item.updatedAt);
|
|
124
|
-
});
|
|
125
|
-
if (false)
|
|
126
|
-
it("test recursive db names", async () => {
|
|
127
|
-
const myClass = class {
|
|
128
|
-
a;
|
|
129
|
-
b;
|
|
130
|
-
c;
|
|
131
|
-
d;
|
|
132
|
-
e;
|
|
133
|
-
f;
|
|
134
|
-
};
|
|
135
|
-
describeClass(myClass, Entity("test-recursive-db-names"), {
|
|
136
|
-
a: Fields.string(),
|
|
137
|
-
b: Fields.string({ dbName: 'bb' }),
|
|
138
|
-
c: Fields.string({ sqlExpression: () => "cc" }),
|
|
139
|
-
d: Fields.string({ sqlExpression: async (e) => await e.fields.c.getDbName() + "dd" }),
|
|
140
|
-
e: Fields.string({
|
|
141
|
-
sqlExpression: async (e) => {
|
|
142
|
-
const n = await dbNamesOf(e);
|
|
143
|
-
return n.c + "ee";
|
|
144
|
-
}
|
|
145
|
-
}),
|
|
146
|
-
f: Fields.string({
|
|
147
|
-
sqlExpression: async (e) => {
|
|
148
|
-
const n = await dbNamesOf(e);
|
|
149
|
-
return n.f + "ff";
|
|
150
|
-
}
|
|
151
|
-
})
|
|
152
|
-
});
|
|
153
|
-
const r = await dbNamesOf(remult.repo(myClass));
|
|
154
|
-
expect(r.a).toBe('a');
|
|
155
|
-
expect(r.b).toBe('bb');
|
|
156
|
-
expect(r.c).toBe('cc');
|
|
157
|
-
expect(r.d).toBe('ccdd');
|
|
158
|
-
expect(r.e).toBe("ccee");
|
|
159
|
-
expect(r.f).toBe("Recursive getDbName call for field 'f'. ff");
|
|
160
|
-
const z = await dbNamesOf(remult.repo(myClass).metadata);
|
|
161
|
-
expect(z.a).toBe('a');
|
|
162
|
-
const zz = await dbNamesOf(myClass);
|
|
163
|
-
expect(zz.a).toBe('a');
|
|
164
|
-
const zzz = await dbNamesOf(testServerExpression);
|
|
165
|
-
expect(zzz.code).toBe('code');
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
@Entity('testServerExpression')
|
|
169
|
-
class testServerExpression extends EntityBase {
|
|
170
|
-
static testVal = 1;
|
|
171
|
-
static testVal2 = 10;
|
|
172
|
-
@Fields.integer()
|
|
173
|
-
code;
|
|
174
|
-
@Fields.integer({ serverExpression: () => testServerExpression.testVal++ })
|
|
175
|
-
test;
|
|
176
|
-
@Fields.integer({ serverExpression: () => Promise.resolve(testServerExpression.testVal2++) })
|
|
177
|
-
testPromise;
|
|
178
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|