Skip to content

Commit fbbd46b

Browse files
committed
fix: unit test
1 parent c49fc92 commit fbbd46b

File tree

7 files changed

+33
-86
lines changed

7 files changed

+33
-86
lines changed

packages/async/src/services/asyncjobservice.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ class AsyncJobServiceTest extends WebdaTest {
291291
service.getParameters().fallbackOnFirst = true;
292292
await handler();
293293
assert.strictEqual((await AsyncAction.ref("plop").get()).status, "STARTING");
294+
await assert.rejects(() => service["handleEvent"](<any>{ uuid: "plop2", type: "Async" }), /Item not found/);
294295
}
295296

296297
@test

packages/async/src/services/asyncjobservice.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -372,10 +372,6 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
372372
this.log("INFO", `Starting action ${event.uuid}`);
373373
await this.model.ref(event.uuid).patch({ uuid: event.uuid, status: "STARTING" });
374374
const action = await this.model.ref(event.uuid).get();
375-
if (!action) {
376-
this.log("ERROR", `Action NOT found`, { event });
377-
return Promise.resolve();
378-
}
379375
const job = await selectedRunner.launchAction(action, this.getJobInfo(action));
380376
await action.patch({ job }, null);
381377
return job.promise || Promise.resolve();
@@ -683,9 +679,9 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
683679
time -= time % this.parameters.schedulerResolution;
684680
// Queue all actions
685681
await Promise.all(
686-
(await this.model.query(`status = 'SCHEDULED' AND scheduled < ${time + 1}`)).results.map(a =>
687-
this.launchAction(a)
688-
)
682+
(
683+
await this.model.query(`status = 'SCHEDULED' AND scheduled < ${time + 1}`)
684+
).results.map(a => this.launchAction(a))
689685
);
690686
time += this.parameters.schedulerResolution;
691687
// Wait for next scheduler resolution

packages/async/src/services/servicerunner.ts

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ConsoleLogger, MemoryLogger, WorkerLogLevel, WorkerMessage, WorkerOutpu
22
import { AsyncAction, AsyncOperationAction, AsyncWebdaAction } from "../models";
33
import AsyncJobService, { JobInfo } from "./asyncjobservice";
44
import { AgentInfo, Runner, RunnerParameters } from "./runner";
5-
import { OperationContext } from "@webda/core";
5+
import { OperationContext, SimpleOperationContext } from "@webda/core";
66

77
/**
88
* Type of action returned by LocalRunner
@@ -122,21 +122,11 @@ export default class ServiceRunner<T extends ServiceRunnerParameters = ServiceRu
122122
if (action instanceof AsyncWebdaAction) {
123123
await this.getService(action.serviceName)[action.method](...(action.arguments || []));
124124
} else {
125-
let ctx = new OperationContext(this.getWebda());
126-
//@ts-expect-error temporary fix
127-
ctx.session = action.context.session;
128-
//@ts-expect-error temporary fix
129-
ctx.input = action.context.input.data;
130-
ctx.getRawInput = async function () {
131-
//@ts-expect-error temporary fix
132-
return Buffer.from(ctx.input || []);
133-
};
134-
ctx.getCurrentUserId = function () {
135-
if (this.session) {
136-
return this.session.userId;
137-
}
138-
return undefined;
139-
};
125+
let ctx: SimpleOperationContext = new SimpleOperationContext(this.getWebda());
126+
// Unserialization might not have happened
127+
ctx.setSession(action.context.getSession ? action.context.getSession() : action.context["session"]);
128+
// Unserialization might not have happened
129+
ctx.setInput(Buffer.from(action.context["input"]?.data || []));
140130
await this.getWebda().callOperation(ctx, action.operationId);
141131
}
142132
await logger.saveAndClose();

packages/core/src/queues/filequeue.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class FileQueueTest extends QueueTest {
4545
// Check if the deletion is not crashing even if the content file is removed
4646
unlinkSync(`${queue.getParameters().folder}/${msg2[0].ReceiptHandle}.json`);
4747
await queue.deleteMessage(msg2[0].ReceiptHandle);
48-
48+
4949
// Check if default parameter is correctly set
5050
queue = new FileQueue(this.webda, "q", {});
5151
assert.strictEqual(queue.getParameters().expire, 30000);

packages/core/src/services/binary.spec.ts

Lines changed: 16 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,8 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
9595
var user;
9696
var ctx;
9797
this.log("DEBUG", "Initializing users");
98-
user1 = await userStore.save({
99-
test: "plop"
100-
});
101-
user2 = await userStore.save({
102-
test: "plop"
103-
});
98+
user1 = await userStore.save({ test: "plop" });
99+
user2 = await userStore.save({ test: "plop" });
104100
this.log("DEBUG", "Store a local file");
105101
await binary.store(user1, map, new LocalBinaryFile(this.getTestFile()), {});
106102
user1 = await userStore.get(user1.uuid);
@@ -128,10 +124,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
128124
value = await binary.getUsageCount(hash);
129125
assert.strictEqual(value, 1);
130126
// Try to get images on user1 as user2
131-
ctx = await this.newContext({
132-
type: "CRUD",
133-
uuid: "PLOP"
134-
});
127+
ctx = await this.newContext({ type: "CRUD", uuid: "PLOP" });
135128
ctx.session.userId = user2.uuid;
136129
let executor = this.getExecutor(
137130
ctx,
@@ -206,9 +199,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
206199
async notMapped() {
207200
let userStore = this.getUserStore();
208201
let binary = this.getBinary();
209-
let user1 = await userStore.save({
210-
test: "plop"
211-
});
202+
let user1 = await userStore.save({ test: "plop" });
212203
binary.getParameters().models = {};
213204
await assert.rejects(
214205
() => binary.store(user1, "images2", new LocalBinaryFile(this.getTestFile()), {}),
@@ -224,9 +215,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
224215
var user1;
225216
var user;
226217
let hash;
227-
user1 = await userStore.save({
228-
test: "plop"
229-
});
218+
user1 = await userStore.save({ test: "plop" });
230219
await binary.store(user1, map, new LocalBinaryFile(this.getTestFile()), {});
231220
user = await userStore.get(user1.uuid);
232221
assert.notStrictEqual(user[map], undefined);
@@ -246,9 +235,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
246235
@test
247236
async httpCreate() {
248237
let userStore = this.getUserStore();
249-
let user1 = await userStore.save({
250-
test: "plop"
251-
});
238+
let user1 = await userStore.save({ test: "plop" });
252239
let ctx = await this.newContext();
253240
let executor = this.getExecutor(ctx, "test.webda.io", "POST", `/binary/users/${user1.getUuid()}/images`, {});
254241
await assert.rejects(
@@ -388,10 +375,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
388375
"test.webda.io",
389376
"PUT",
390377
`/binary/users/${user1.getUuid()}/images/0/${user1.images[0].hash}`,
391-
{
392-
"my-metadata": "updated",
393-
"my-other-metadata": true
394-
}
378+
{ "my-metadata": "updated", "my-other-metadata": true }
395379
);
396380
await executor.execute(ctx);
397381
let user = await this.getUserStore().get(ctx.getCurrentUserId());
@@ -403,10 +387,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
403387
"test.webda.io",
404388
"PUT",
405389
`/binary/users/${user1.getUuid()}/images/0/${user1.images[0].hash}`,
406-
{
407-
"my-metadata": "updated".repeat(4096),
408-
"my-other-metadata": true
409-
}
390+
{ "my-metadata": "updated".repeat(4096), "my-other-metadata": true }
410391
);
411392
await assert.rejects(
412393
() => executor.execute(ctx),
@@ -420,26 +401,17 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
420401
await assert.rejects(
421402
() =>
422403
// @ts-ignore
423-
this.getBinary().get({
424-
hash: "none",
425-
mimetype: "",
426-
size: 10
427-
}),
404+
this.getBinary().get({ hash: "none", mimetype: "", size: 10 }),
428405
BinaryNotFoundError
429406
);
430407
}
431408

432-
async setupDefault(withLogin: boolean = true): Promise<{
433-
userStore: Store;
434-
binary: BinaryService;
435-
user1: ImageUser;
436-
ctx: WebContext;
437-
}> {
409+
async setupDefault(
410+
withLogin: boolean = true
411+
): Promise<{ userStore: Store; binary: BinaryService; user1: ImageUser; ctx: WebContext }> {
438412
let userStore = this.getUserStore();
439413
let binary = this.getBinary();
440-
let user1: ImageUser = await userStore.save({
441-
test: "plop"
442-
});
414+
let user1: ImageUser = await userStore.save({ test: "plop" });
443415
await binary.store(user1, "images", new LocalBinaryFile(this.getTestFile()));
444416
await user1.refresh();
445417
let ctx = await this.newContext();
@@ -456,9 +428,7 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
456428
Buffer.from("PLOP"),
457429
<BinaryFileInfo>(<unknown>{})
458430
).getHashes();
459-
let metadata = {
460-
plop: "test"
461-
};
431+
let metadata = { plop: "test" };
462432
let executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/upload/users/${user1.getUuid()}/images`, {
463433
hash,
464434
challenge,
@@ -533,24 +503,10 @@ class BinaryTest<T extends BinaryService = BinaryService> extends WebdaTest {
533503
async sendChallengeData(info: any, data: string) {
534504
let res;
535505
try {
536-
res = await axios.request({
537-
method: info.method,
538-
url: info.url,
539-
data,
540-
headers: info.headers
541-
});
506+
res = await axios.request({ method: info.method, url: info.url, data, headers: info.headers });
542507
return res;
543508
} catch (err) {
544-
console.log(
545-
"sendChallengeDataError",
546-
{
547-
method: info.method,
548-
url: info.url,
549-
data,
550-
headers: info.headers
551-
},
552-
err
553-
);
509+
console.log("sendChallengeDataError", { method: info.method, url: info.url, data, headers: info.headers }, err);
554510
throw err;
555511
}
556512
}

packages/core/src/utils/context.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ export class OperationContext<T = any, U = any> extends EventEmitter {
373373
* Get the current user id from session
374374
*/
375375
getCurrentUserId() {
376-
return undefined;
376+
return this.session?.userId;
377377
}
378378

379379
/**

packages/graphql/src/graphql.spec.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,10 @@ class GraphQLSubscriptionTest {
507507
await Course.ref("test").delete();
508508
} else if (i === 4) {
509509
// Finishing the test
510-
assert.deepStrictEqual(event.data?.Courses.results.map(c => c.name), ["test2b", "test3"]);
510+
assert.deepStrictEqual(
511+
event.data?.Courses.results.map(c => c.name),
512+
["test2b", "test3"]
513+
);
511514
break;
512515
}
513516
}
@@ -685,5 +688,6 @@ class TypesTest {
685688
assert.throws(() => DateScalar.serialize("test"), /GraphQL Date Scalar serializer expected a `Date` object/);
686689
assert.ok(DateScalar.parseLiteral({ kind: Kind.STRING, value: "2020-01-01T00:00:00.000Z" }) instanceof Date);
687690
assert.strictEqual(DateScalar.parseLiteral({ kind: Kind.INT, value: "2020-01-01T00:00:00.000Z" }), null);
691+
assert.strictEqual(DateScalar.parseValue(null), undefined);
688692
}
689693
}

0 commit comments

Comments
 (0)