@webresto/graphql 1.3.7 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.gitattributes +2 -0
- package/.gitlab-ci.yml +18 -0
- package/.vscode/extensions.json +5 -0
- package/docs/actions.md +25 -0
- package/docs/authorization.md +215 -0
- package/docs/captcha.md +71 -0
- package/docs/device-id.md +30 -0
- package/docs/messages.md +10 -0
- package/docs/user.md +54 -0
- package/index.d.ts +0 -1
- package/index.js +6 -2
- package/index.ts +2 -2
- package/lib/afterHook.js +8 -0
- package/lib/afterHook.ts +9 -0
- package/lib/bindTranslations.d.ts +1 -0
- package/lib/bindTranslations.js +40 -0
- package/lib/bindTranslations.ts +39 -0
- package/lib/defaults.d.ts +1 -0
- package/lib/defaults.js +49 -10
- package/lib/defaults.ts +55 -0
- package/lib/eventHelper.d.ts +14 -5
- package/lib/eventHelper.js +28 -9
- package/lib/eventHelper.ts +41 -8
- package/lib/getRecomended.d.ts +1 -0
- package/lib/getRecomended.js +29 -0
- package/lib/getRecomended.ts +31 -0
- package/lib/graphqlHelper.d.ts +3 -4
- package/lib/graphqlHelper.js +184 -72
- package/lib/graphqlHelper.ts +329 -185
- package/lib/jwt.d.ts +10 -0
- package/lib/jwt.js +43 -0
- package/lib/jwt.ts +61 -0
- package/package.json +15 -7
- package/src/additionalResolvers.d.ts +72 -9
- package/src/additionalResolvers.js +93 -24
- package/src/additionalResolvers.ts +105 -34
- package/src/graphql.d.ts +5 -3
- package/src/graphql.js +170 -37
- package/src/graphql.ts +210 -60
- package/src/resolvers/bonusProgram.d.ts +32 -0
- package/src/resolvers/bonusProgram.js +65 -0
- package/src/resolvers/bonusProgram.ts +79 -0
- package/src/resolvers/captcha.d.ts +11 -0
- package/src/resolvers/captcha.js +19 -0
- package/src/resolvers/captcha.ts +16 -0
- package/src/resolvers/checkout.d.ts +35 -16
- package/src/resolvers/checkout.js +171 -94
- package/src/resolvers/checkout.ts +214 -104
- package/src/resolvers/dishAndModifier.js +8 -4
- package/src/resolvers/dishAndModifier.ts +4 -0
- package/src/resolvers/error.d.ts +9 -0
- package/src/resolvers/error.js +21 -0
- package/src/resolvers/error.ts +21 -0
- package/src/resolvers/menu.d.ts +9 -0
- package/src/resolvers/menu.js +12 -0
- package/src/resolvers/menu.ts +10 -0
- package/src/resolvers/order.d.ts +527 -0
- package/src/resolvers/order.js +349 -0
- package/src/resolvers/order.ts +435 -0
- package/src/resolvers/paymentMethod.js +7 -3
- package/src/resolvers/paymentMethod.ts +9 -5
- package/src/resolvers/pickupPoint.d.ts +1 -0
- package/src/resolvers/pickupPoint.js +24 -0
- package/src/resolvers/pickupPoint.ts +23 -0
- package/src/resolvers/recomended.d.ts +13 -0
- package/src/resolvers/recomended.js +80 -0
- package/src/resolvers/recomended.ts +86 -0
- package/src/resolvers/restrictions.d.ts +37 -1
- package/src/resolvers/restrictions.js +100 -15
- package/src/resolvers/restrictions.ts +106 -14
- package/src/resolvers/streets.d.ts +1 -1
- package/src/resolvers/streets.js +1 -4
- package/src/resolvers/streets.ts +1 -3
- package/src/resolvers/subscriptions.d.ts +4 -4
- package/src/resolvers/subscriptions.js +49 -12
- package/src/resolvers/subscriptions.ts +59 -14
- package/src/resolvers/telemetry.d.ts +14 -0
- package/src/resolvers/telemetry.js +25 -0
- package/src/resolvers/telemetry.ts +24 -0
- package/src/resolvers/user.d.ts +82 -0
- package/src/resolvers/user.js +416 -0
- package/src/resolvers/user.ts +621 -0
- package/src/resolvers/userLocation.d.ts +53 -0
- package/src/resolvers/userLocation.js +74 -0
- package/src/resolvers/userLocation.ts +125 -0
- package/src/resolvers/userOTPrequest.d.ts +21 -0
- package/src/resolvers/userOTPrequest.js +57 -0
- package/src/resolvers/userOTPrequest.ts +75 -0
- package/test/e2e_helper.js +157 -0
- package/test/e2e_helper.ts +212 -0
- package/test/fixture/config/i18n.js +7 -20
- package/test/fixture/config/locales/de.json +1 -0
- package/test/fixture/config/locales/en.json +10 -0
- package/test/fixture/config/locales/es.json +3 -0
- package/test/fixture/config/locales/fr.json +1 -0
- package/test/fixture/config/log.js +1 -1
- package/test/fixture/package.json +5 -6
- package/test/fixture/patches/rttc+10.0.1.patch +17 -0
- package/test/integration/captcha.test.js +20 -0
- package/test/integration/captcha.test.ts +25 -0
- package/test/integration/dish.test.js +35 -0
- package/test/integration/dish.test.ts +43 -0
- package/test/integration/graphql.test.js +5 -2
- package/test/integration/graphql.test.ts +2 -4
- package/test/integration/images.test.js +35 -0
- package/test/integration/images.test.ts +40 -0
- package/test/integration/locale.test.js +26 -0
- package/test/integration/locale.test.ts +32 -0
- package/test/integration/order.test.js +56 -43
- package/test/integration/order.test.ts +59 -59
- package/test/integration/subscriptions.test.js +136 -0
- package/test/integration/subscriptions.test.ts +162 -0
- package/test/integration/user.test.js +249 -0
- package/test/integration/user.test.ts +299 -0
- package/test/unit/first.test.js +4 -2
- package/test/unit/first.test.ts +1 -1
- package/test/unit/get-recomended.test.js +56 -0
- package/test/unit/get-recomended.test.ts +63 -0
- package/translations/de.json +2 -0
- package/translations/en.json +3 -0
- package/translations/es.json +3 -0
- package/translations/fr.json +2 -0
- package/translations/ru.json +36 -0
- package/tsconfig.json +20 -5
- package/types/global.d.ts +30 -0
- package/types/global.js +2 -0
- package/types/global.ts +31 -0
- package/types/primitives.d.ts +19 -0
- package/types/references.d.ts +1 -0
- package/types/restoGraphQLConfig.d.ts +13 -0
- package/lib/afterHook.ts___graphql-transport-ws +0 -138
- package/lib/afterHook.ts___graphql-ws +0 -133
- package/lib/errorWrapper.d.ts +0 -4
- package/lib/errorWrapper.js +0 -13
- package/lib/errorWrapper.ts +0 -12
- package/notes.md +0 -1976
- package/src/resolvers/cart.d.ts +0 -343
- package/src/resolvers/cart.js +0 -196
- package/src/resolvers/cart.ts +0 -278
- package/test/fixture/config/connections.js +0 -9
- package/test/integration/sails_not_crash.test.js +0 -3
- package/test/integration/sails_not_crash.test.ts +0 -3
@@ -0,0 +1,212 @@
|
|
1
|
+
//
|
2
|
+
// E2E Test Setup
|
3
|
+
// e2e_helpers.js
|
4
|
+
//
|
5
|
+
|
6
|
+
import { getMainDefinition } from "@apollo/client/utilities";
|
7
|
+
import { WebSocketLink } from "@apollo/client/link/ws";
|
8
|
+
import fetch from "cross-fetch";
|
9
|
+
import * as ws from "ws";
|
10
|
+
import axios from "axios";
|
11
|
+
|
12
|
+
import {
|
13
|
+
split,
|
14
|
+
HttpLink,
|
15
|
+
ApolloClient,
|
16
|
+
InMemoryCache,
|
17
|
+
DocumentNode,
|
18
|
+
SubscriptionOptions,
|
19
|
+
} from "@apollo/client";
|
20
|
+
|
21
|
+
const host = "127.0.0.1";
|
22
|
+
const port = process.env.PORT === undefined ? "42772" : process.env.PORT;
|
23
|
+
|
24
|
+
export type TestServerInfo = {
|
25
|
+
port: string;
|
26
|
+
host: string;
|
27
|
+
};
|
28
|
+
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Our test apollo client <3
|
32
|
+
*
|
33
|
+
* @export
|
34
|
+
* @class TestApolloClient
|
35
|
+
* @extends {ApolloClient<any>}
|
36
|
+
*/
|
37
|
+
export class TestApolloClient extends ApolloClient<any> {
|
38
|
+
private wsLink: WebSocketLink;
|
39
|
+
|
40
|
+
constructor(serverInfo: TestServerInfo) {
|
41
|
+
const { host } = serverInfo;
|
42
|
+
|
43
|
+
const wsLink = new WebSocketLink({
|
44
|
+
// @TODO: Update WS url
|
45
|
+
uri: `ws://${host}:${port}/graphql`,
|
46
|
+
webSocketImpl: ws,
|
47
|
+
options: {
|
48
|
+
reconnect: false,
|
49
|
+
connectionParams: {
|
50
|
+
Authorization: "Bearer dummy",
|
51
|
+
},
|
52
|
+
},
|
53
|
+
});
|
54
|
+
|
55
|
+
const httpLink = new HttpLink({
|
56
|
+
// @TODO: update HTTP url
|
57
|
+
uri: `http://${host}:${port}/graphql`,
|
58
|
+
fetch: fetch,
|
59
|
+
});
|
60
|
+
|
61
|
+
const splitLink = split(
|
62
|
+
({ query }) => {
|
63
|
+
const definition = getMainDefinition(query);
|
64
|
+
return (
|
65
|
+
definition.kind === "OperationDefinition" &&
|
66
|
+
definition.operation === "subscription"
|
67
|
+
);
|
68
|
+
},
|
69
|
+
wsLink,
|
70
|
+
httpLink
|
71
|
+
);
|
72
|
+
|
73
|
+
super({
|
74
|
+
link: splitLink,
|
75
|
+
cache: new InMemoryCache(),
|
76
|
+
});
|
77
|
+
|
78
|
+
this.wsLink = wsLink;
|
79
|
+
}
|
80
|
+
|
81
|
+
stop() {
|
82
|
+
super.stop();
|
83
|
+
//
|
84
|
+
// This is important, or else your test session will never close.
|
85
|
+
// Also the reason it inherits from ApolloClient instead of just creating it
|
86
|
+
// That way we can sneak in that WS closing
|
87
|
+
//
|
88
|
+
(this.wsLink as any).subscriptionClient.close();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
//
|
93
|
+
//
|
94
|
+
// A very rough helper for testing subscription
|
95
|
+
//
|
96
|
+
// @TODO: look into finding better alternatives
|
97
|
+
//
|
98
|
+
//
|
99
|
+
|
100
|
+
type SubscriptionTestParams = {
|
101
|
+
client: TestApolloClient;
|
102
|
+
query: DocumentNode;
|
103
|
+
variables?: SubscriptionOptions;
|
104
|
+
};
|
105
|
+
|
106
|
+
type WaitCondition = () => boolean;
|
107
|
+
|
108
|
+
/**
|
109
|
+
* Helper to create a subscription with a bunch of handy methods
|
110
|
+
*
|
111
|
+
* @export
|
112
|
+
* @param {SubscriptionTestParams} params
|
113
|
+
* @returns
|
114
|
+
*/
|
115
|
+
export function createSubscription(params: SubscriptionTestParams) {
|
116
|
+
const results: any[] = [];
|
117
|
+
|
118
|
+
let error: any;
|
119
|
+
|
120
|
+
let observer = params.client
|
121
|
+
.subscribe({
|
122
|
+
errorPolicy: "all",
|
123
|
+
query: params.query,
|
124
|
+
variables: params.variables || {},
|
125
|
+
})
|
126
|
+
.subscribe({
|
127
|
+
next(data) {
|
128
|
+
results.push(data);
|
129
|
+
},
|
130
|
+
error: (err) => {
|
131
|
+
error = err;
|
132
|
+
},
|
133
|
+
});
|
134
|
+
|
135
|
+
return {
|
136
|
+
results,
|
137
|
+
observer,
|
138
|
+
|
139
|
+
disconnect() {
|
140
|
+
observer.unsubscribe();
|
141
|
+
},
|
142
|
+
|
143
|
+
wait(ms: number = 100) {
|
144
|
+
return new Promise((done) => {
|
145
|
+
setTimeout(() => {
|
146
|
+
done(null);
|
147
|
+
}, ms);
|
148
|
+
});
|
149
|
+
},
|
150
|
+
|
151
|
+
waitForResults(opts: { len?: number; timeout?: number } = {}) {
|
152
|
+
return new Promise((done, fail) => {
|
153
|
+
let step = 50;
|
154
|
+
let sum = 0;
|
155
|
+
let timeout = opts.timeout ?? 3000;
|
156
|
+
let len = opts.len ?? 1;
|
157
|
+
|
158
|
+
const interval = setInterval(() => {
|
159
|
+
if (!error && results.length >= len) {
|
160
|
+
clearInterval(interval);
|
161
|
+
return done(results);
|
162
|
+
}
|
163
|
+
if (error || sum >= timeout) {
|
164
|
+
error =
|
165
|
+
error ||
|
166
|
+
new Error(
|
167
|
+
`Timeout: subscription did not receive the expected results after ${timeout}ms`
|
168
|
+
);
|
169
|
+
clearInterval(interval);
|
170
|
+
return fail(error);
|
171
|
+
}
|
172
|
+
sum += step;
|
173
|
+
}, step);
|
174
|
+
});
|
175
|
+
},
|
176
|
+
|
177
|
+
get triggerCount() {
|
178
|
+
return results.length;
|
179
|
+
},
|
180
|
+
|
181
|
+
get error() {
|
182
|
+
return error;
|
183
|
+
},
|
184
|
+
};
|
185
|
+
}
|
186
|
+
|
187
|
+
export async function runGQL(query: string, headersOrToken?: string | any, variables?: string ): Promise<{[key: string]: any}> {
|
188
|
+
return new Promise((resolve, reject) => {
|
189
|
+
let headers = headersOrToken;
|
190
|
+
// Except stringToken
|
191
|
+
if (typeof headersOrToken === "string") {
|
192
|
+
headers = {
|
193
|
+
Authorization: `${headersOrToken}`,
|
194
|
+
};
|
195
|
+
}
|
196
|
+
|
197
|
+
axios
|
198
|
+
.post(`http://${host}:${port}/graphql`, { query, variables }, { headers })
|
199
|
+
.then((response) => {
|
200
|
+
if(response.data.errors) {
|
201
|
+
console.log(response.data.errors)
|
202
|
+
return resolve(response.data)
|
203
|
+
}
|
204
|
+
return resolve(response.data);
|
205
|
+
})
|
206
|
+
|
207
|
+
.catch((error) => {
|
208
|
+
console.log(error.response.data.errors)
|
209
|
+
return resolve(error.response.data);
|
210
|
+
});
|
211
|
+
});
|
212
|
+
}
|
@@ -5,14 +5,11 @@
|
|
5
5
|
* If your app will touch people from all over the world, i18n (or internationalization)
|
6
6
|
* may be an important part of your international strategy.
|
7
7
|
*
|
8
|
+
* For a complete list of options for Sails' built-in i18n support, see:
|
9
|
+
* https://sailsjs.com/config/i-18-n
|
8
10
|
*
|
9
|
-
* For more
|
10
|
-
*
|
11
|
-
*
|
12
|
-
* For a complete list of i18n options, see:
|
13
|
-
* https://github.com/mashpie/i18n-node#list-of-configuration-options
|
14
|
-
*
|
15
|
-
*
|
11
|
+
* For more info on i18n in Sails in general, check out:
|
12
|
+
* https://sailsjs.com/docs/concepts/internationalization
|
16
13
|
*/
|
17
14
|
|
18
15
|
module.exports.i18n = {
|
@@ -23,7 +20,7 @@ module.exports.i18n = {
|
|
23
20
|
* *
|
24
21
|
***************************************************************************/
|
25
22
|
|
26
|
-
|
23
|
+
locales: ['en', 'es', 'fr', 'de'],
|
27
24
|
|
28
25
|
/****************************************************************************
|
29
26
|
* *
|
@@ -34,16 +31,7 @@ module.exports.i18n = {
|
|
34
31
|
* *
|
35
32
|
****************************************************************************/
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
/****************************************************************************
|
40
|
-
* *
|
41
|
-
* Automatically add new keys to locale (translation) files when they are *
|
42
|
-
* encountered during a request? *
|
43
|
-
* *
|
44
|
-
****************************************************************************/
|
45
|
-
|
46
|
-
// updateFiles: false,
|
34
|
+
defaultLocale: 'en',
|
47
35
|
|
48
36
|
/****************************************************************************
|
49
37
|
* *
|
@@ -52,6 +40,5 @@ module.exports.i18n = {
|
|
52
40
|
* *
|
53
41
|
****************************************************************************/
|
54
42
|
|
55
|
-
|
56
|
-
|
43
|
+
localesDirectory: 'config/locales'
|
57
44
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"Status here": "Status here",
|
3
|
+
"Attention": "Attention",
|
4
|
+
"Ready for order": "Ready for order",
|
5
|
+
"Successfully": "Successfully",
|
6
|
+
"Your order is accepted for processing": "Your order is accepted for processing",
|
7
|
+
"Success": "Success",
|
8
|
+
"OTP sended": "OTP sended",
|
9
|
+
"Authorization": "Authorization"
|
10
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -7,21 +7,20 @@
|
|
7
7
|
"dependencies": {
|
8
8
|
"@webresto/core": "file:../../node_modules/@webresto/core",
|
9
9
|
"@webresto/graphql": "file:../..",
|
10
|
-
"@webresto/worktime": "file:../../node_modules/@webresto/worktime",
|
11
|
-
"replace-in-file": "^6.3.2",
|
12
10
|
"include-all": "^1.0.8",
|
13
11
|
"rc": "^1.0.1",
|
14
12
|
"request": "^2.88.2",
|
15
|
-
"sails": "^1.5.
|
16
|
-
"sails-hook-orm": "^
|
13
|
+
"sails": "^1.5.3",
|
14
|
+
"sails-hook-orm": "^4.0.0",
|
17
15
|
"sails-hook-stateflow": "^1.0.6",
|
18
|
-
"
|
16
|
+
"muddy-water": "^1.0.6",
|
17
|
+
"patch-package": "^6.4.7",
|
19
18
|
"sails-memory": "^0.10.7"
|
20
19
|
},
|
21
20
|
"scripts": {
|
22
21
|
"debug": "node debug app.js",
|
23
22
|
"start": "node app.js",
|
24
|
-
"postinstall": "
|
23
|
+
"postinstall": "patch-package --patch-dir=node_modules/muddy-water"
|
25
24
|
},
|
26
25
|
"main": "app.js",
|
27
26
|
"repository": {
|
@@ -0,0 +1,17 @@
|
|
1
|
+
diff --git a/node_modules/rttc/lib/helpers/types.js b/node_modules/rttc/lib/helpers/types.js
|
2
|
+
index a11279d..1181562 100644
|
3
|
+
--- a/node_modules/rttc/lib/helpers/types.js
|
4
|
+
+++ b/node_modules/rttc/lib/helpers/types.js
|
5
|
+
@@ -460,9 +460,11 @@ var TYPES = {
|
6
|
+
}
|
7
|
+
// Reject RttcRefPlaceholders
|
8
|
+
// (this is a special case so there is a placeholder value that ONLY validates against the "ref" type)
|
9
|
+
- if (_.isObject(v) && v.constructor.name === 'RttcRefPlaceholder') {
|
10
|
+
+
|
11
|
+
+ if (_.isObject(v) && v.constructor && v.constructor.name === 'RttcRefPlaceholder') {
|
12
|
+
return false;
|
13
|
+
}
|
14
|
+
+
|
15
|
+
if (_.isString(v) || _.isNumber(v) || _.isBoolean(v) || _.isPlainObject(v) || _.isArray(v) || _.isNull(v)) {
|
16
|
+
return true;
|
17
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const chai_1 = require("chai");
|
4
|
+
const e2e_helper_1 = require("../e2e_helper");
|
5
|
+
let headers = {
|
6
|
+
'x-device-id': '123testDeviceId',
|
7
|
+
};
|
8
|
+
describe('Captcha', function () {
|
9
|
+
it('get new job', async () => {
|
10
|
+
const query = `
|
11
|
+
{captchaGetJob(label: "test:123") {
|
12
|
+
id
|
13
|
+
task
|
14
|
+
}}`;
|
15
|
+
const result = await (0, e2e_helper_1.runGQL)(query, headers);
|
16
|
+
(0, chai_1.expect)(typeof result.data.captchaGetJob.id).to.equal("string");
|
17
|
+
(0, chai_1.expect)(typeof result.data.captchaGetJob.task).to.equal("string");
|
18
|
+
(0, chai_1.expect)(result.errors).to.be.undefined;
|
19
|
+
});
|
20
|
+
});
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import {expect} from "chai"
|
2
|
+
|
3
|
+
import { runGQL } from "../e2e_helper";
|
4
|
+
|
5
|
+
let headers = {
|
6
|
+
'x-device-id': '123testDeviceId',
|
7
|
+
}
|
8
|
+
|
9
|
+
describe('Captcha', function () {
|
10
|
+
it('get new job', async () => {
|
11
|
+
const query = `
|
12
|
+
{captchaGetJob(label: "test:123") {
|
13
|
+
id
|
14
|
+
task
|
15
|
+
}}`;
|
16
|
+
|
17
|
+
const result = await runGQL(query, headers);
|
18
|
+
|
19
|
+
expect(typeof result.data.captchaGetJob.id).to.equal("string");
|
20
|
+
expect(typeof result.data.captchaGetJob.task).to.equal("string");
|
21
|
+
expect(result.errors).to.be.undefined;
|
22
|
+
});
|
23
|
+
});
|
24
|
+
|
25
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const chai_1 = require("chai");
|
4
|
+
const e2e_helper_1 = require("../e2e_helper");
|
5
|
+
let headers = {
|
6
|
+
'x-device-id': '123testDeviceId',
|
7
|
+
};
|
8
|
+
describe('Dishes', function () {
|
9
|
+
it('Get by parentGroup list', async () => {
|
10
|
+
const query = `#graphql
|
11
|
+
{dish (criteria: {parentGroup: [
|
12
|
+
"3e43dde8-1bc5-450e-aeb6-8cf2ac1759b2",
|
13
|
+
"582fc73f-ebb7-4153-8923-d1fd4a772e96",
|
14
|
+
"b6d7ce4b-b604-423d-bdb8-715cc65c5468",
|
15
|
+
"3658e9a7-a4ee-4a0f-971b-50b221fba1c5"
|
16
|
+
]}){
|
17
|
+
id
|
18
|
+
name
|
19
|
+
parentGroup
|
20
|
+
{
|
21
|
+
id
|
22
|
+
name
|
23
|
+
}
|
24
|
+
}}`;
|
25
|
+
const result = await (0, e2e_helper_1.runGQL)(query, headers);
|
26
|
+
let dishesSeed = require('../fixture/seeds/dish.json');
|
27
|
+
let dishesData = {};
|
28
|
+
dishesSeed.forEach(function (raw_dish) {
|
29
|
+
dishesData[raw_dish.id] = raw_dish;
|
30
|
+
});
|
31
|
+
result.data.dish.forEach(function (dish) {
|
32
|
+
(0, chai_1.expect)(dish.parentGroup.id).to.equal(dishesData[dish.id].parentGroup);
|
33
|
+
});
|
34
|
+
});
|
35
|
+
});
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import {expect} from "chai"
|
2
|
+
|
3
|
+
import { runGQL } from "../e2e_helper";
|
4
|
+
|
5
|
+
let headers = {
|
6
|
+
'x-device-id': '123testDeviceId',
|
7
|
+
}
|
8
|
+
|
9
|
+
describe('Dishes', function () {
|
10
|
+
it('Get by parentGroup list', async () => {
|
11
|
+
const query = `#graphql
|
12
|
+
{dish (criteria: {parentGroup: [
|
13
|
+
"3e43dde8-1bc5-450e-aeb6-8cf2ac1759b2",
|
14
|
+
"582fc73f-ebb7-4153-8923-d1fd4a772e96",
|
15
|
+
"b6d7ce4b-b604-423d-bdb8-715cc65c5468",
|
16
|
+
"3658e9a7-a4ee-4a0f-971b-50b221fba1c5"
|
17
|
+
]}){
|
18
|
+
id
|
19
|
+
name
|
20
|
+
parentGroup
|
21
|
+
{
|
22
|
+
id
|
23
|
+
name
|
24
|
+
}
|
25
|
+
}}`;
|
26
|
+
|
27
|
+
const result = await runGQL(query, headers);
|
28
|
+
|
29
|
+
let dishesSeed = require('../fixture/seeds/dish.json');
|
30
|
+
let dishesData = {};
|
31
|
+
|
32
|
+
dishesSeed.forEach(function (raw_dish) {
|
33
|
+
dishesData[raw_dish.id] = raw_dish;
|
34
|
+
});
|
35
|
+
|
36
|
+
result.data.dish.forEach(function (dish) {
|
37
|
+
expect(dish.parentGroup.id).to.equal(dishesData[dish.id].parentGroup);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
});
|
41
|
+
|
42
|
+
|
43
|
+
|
@@ -1,10 +1,13 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
// const expect = require("chai").expect;
|
4
|
+
const chai_1 = require("chai");
|
2
5
|
describe('GraphQl', function () {
|
3
6
|
it('Added fields exist in schema', async () => {
|
4
7
|
const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
|
5
8
|
const result = await graphql.getServer().executeOperation({
|
6
9
|
query: '{dish { id } \n group { id }}'
|
7
10
|
});
|
8
|
-
expect(result.errors).to.be.undefined;
|
11
|
+
(0, chai_1.expect)(result.errors).to.be.undefined;
|
9
12
|
});
|
10
13
|
});
|
@@ -1,5 +1,5 @@
|
|
1
|
-
const expect = require("chai").expect;
|
2
|
-
|
1
|
+
// const expect = require("chai").expect;
|
2
|
+
import {expect} from "chai"
|
3
3
|
describe('GraphQl', function () {
|
4
4
|
it('Added fields exist in schema', async () => {
|
5
5
|
|
@@ -10,5 +10,3 @@ describe('GraphQl', function () {
|
|
10
10
|
expect(result.errors).to.be.undefined;
|
11
11
|
});
|
12
12
|
});
|
13
|
-
|
14
|
-
|
@@ -0,0 +1,35 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const chai_1 = require("chai");
|
4
|
+
describe('Images', function () {
|
5
|
+
it('Get by parentGroup list', async () => {
|
6
|
+
const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
|
7
|
+
const result = await graphql.getServer().executeOperation({
|
8
|
+
query: `
|
9
|
+
{dish (criteria: {parentGroup: [
|
10
|
+
"3e43dde8-1bc5-450e-aeb6-8cf2ac1759b2",
|
11
|
+
"582fc73f-ebb7-4153-8923-d1fd4a772e96",
|
12
|
+
"b6d7ce4b-b604-423d-bdb8-715cc65c5468",
|
13
|
+
"3658e9a7-a4ee-4a0f-971b-50b221fba1c5"
|
14
|
+
]}){
|
15
|
+
id
|
16
|
+
name
|
17
|
+
parentGroup
|
18
|
+
{
|
19
|
+
id
|
20
|
+
name
|
21
|
+
}
|
22
|
+
}}
|
23
|
+
`
|
24
|
+
});
|
25
|
+
let dishesSeed = require('../fixture/seeds/dish.json');
|
26
|
+
let dishesData = {};
|
27
|
+
dishesSeed.forEach(function (raw_dish) {
|
28
|
+
dishesData[raw_dish.id] = raw_dish;
|
29
|
+
// console.log(2222,dishesData[raw_dish.id])
|
30
|
+
});
|
31
|
+
result.data.dish.forEach(function (dish) {
|
32
|
+
(0, chai_1.expect)(dish.parentGroup.id).to.equal(dishesData[dish.id].parentGroup);
|
33
|
+
});
|
34
|
+
});
|
35
|
+
});
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import {expect} from "chai"
|
2
|
+
|
3
|
+
describe('Images', function () {
|
4
|
+
it('Get by parentGroup list', async () => {
|
5
|
+
|
6
|
+
const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
|
7
|
+
const result = await graphql.getServer().executeOperation({
|
8
|
+
query: `
|
9
|
+
{dish (criteria: {parentGroup: [
|
10
|
+
"3e43dde8-1bc5-450e-aeb6-8cf2ac1759b2",
|
11
|
+
"582fc73f-ebb7-4153-8923-d1fd4a772e96",
|
12
|
+
"b6d7ce4b-b604-423d-bdb8-715cc65c5468",
|
13
|
+
"3658e9a7-a4ee-4a0f-971b-50b221fba1c5"
|
14
|
+
]}){
|
15
|
+
id
|
16
|
+
name
|
17
|
+
parentGroup
|
18
|
+
{
|
19
|
+
id
|
20
|
+
name
|
21
|
+
}
|
22
|
+
}}
|
23
|
+
`
|
24
|
+
});
|
25
|
+
let dishesSeed = require('../fixture/seeds/dish.json')
|
26
|
+
let dishesData = {}
|
27
|
+
|
28
|
+
dishesSeed.forEach(function(raw_dish){
|
29
|
+
dishesData[raw_dish.id] = raw_dish
|
30
|
+
// console.log(2222,dishesData[raw_dish.id])
|
31
|
+
})
|
32
|
+
|
33
|
+
|
34
|
+
result.data.dish.forEach( function(dish){
|
35
|
+
expect(dish.parentGroup.id).to.equal(dishesData[dish.id].parentGroup);
|
36
|
+
});
|
37
|
+
});
|
38
|
+
});
|
39
|
+
|
40
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const chai_1 = require("chai");
|
4
|
+
const e2e_helper_1 = require("../e2e_helper");
|
5
|
+
let headers = {
|
6
|
+
'x-device-id': '123testDeviceId',
|
7
|
+
};
|
8
|
+
describe('Locale', function () {
|
9
|
+
it('Check change locale', async () => {
|
10
|
+
const query = `
|
11
|
+
{telemetry {
|
12
|
+
i18n
|
13
|
+
locale
|
14
|
+
}}`;
|
15
|
+
const result = await (0, e2e_helper_1.runGQL)(query, headers);
|
16
|
+
(0, chai_1.expect)(result.data.telemetry.i18n).to.equal("Status here");
|
17
|
+
(0, chai_1.expect)(result.data.telemetry.locale).to.equal("en");
|
18
|
+
(0, chai_1.expect)(result.errors).to.be.undefined;
|
19
|
+
// Español
|
20
|
+
headers['accept-language'] = 'es';
|
21
|
+
const result_es = await (0, e2e_helper_1.runGQL)(query, headers);
|
22
|
+
(0, chai_1.expect)(result_es.data.telemetry.i18n).to.equal("Estado aquí");
|
23
|
+
(0, chai_1.expect)(result_es.data.telemetry.locale).to.equal("es");
|
24
|
+
(0, chai_1.expect)(result_es.errors).to.be.undefined;
|
25
|
+
});
|
26
|
+
});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { expect } from "chai";
|
2
|
+
import { runGQL } from "../e2e_helper";
|
3
|
+
|
4
|
+
let headers = {
|
5
|
+
'x-device-id': '123testDeviceId',
|
6
|
+
}
|
7
|
+
|
8
|
+
describe('Locale', function () {
|
9
|
+
it('Check change locale', async () => {
|
10
|
+
const query = `
|
11
|
+
{telemetry {
|
12
|
+
i18n
|
13
|
+
locale
|
14
|
+
}}`;
|
15
|
+
|
16
|
+
const result = await runGQL(query, headers);
|
17
|
+
|
18
|
+
expect(result.data.telemetry.i18n).to.equal("Status here");
|
19
|
+
expect(result.data.telemetry.locale).to.equal("en");
|
20
|
+
expect(result.errors).to.be.undefined;
|
21
|
+
|
22
|
+
// Español
|
23
|
+
headers['accept-language'] = 'es';
|
24
|
+
const result_es = await runGQL(query, headers);
|
25
|
+
expect(result_es.data.telemetry.i18n).to.equal("Estado aquí");
|
26
|
+
expect(result_es.data.telemetry.locale).to.equal("es");
|
27
|
+
expect(result_es.errors).to.be.undefined;
|
28
|
+
|
29
|
+
});
|
30
|
+
});
|
31
|
+
|
32
|
+
|