chore: apply prettier
This commit is contained in:
@ -1,188 +1,188 @@
|
||||
import { initializeTaskManager, taskRunner } from "@_koii/task-manager";
|
||||
import { setup } from "../src/task/0-setup";
|
||||
import { task } from "../src/task/1-task";
|
||||
import { submission } from "../src/task/2-submission";
|
||||
import { audit } from "../src/task/3-audit";
|
||||
import { distribution } from "../src/task/4-distribution";
|
||||
import { routes } from "../src/task/5-routes";
|
||||
import { namespaceWrapper, _server } from "@_koii/task-manager/namespace-wrapper";
|
||||
import Joi from "joi";
|
||||
import axios from "axios";
|
||||
import { Submitter } from "@_koii/task-manager";
|
||||
beforeAll(async () => {
|
||||
await namespaceWrapper.defaultTaskSetup();
|
||||
initializeTaskManager({
|
||||
setup,
|
||||
task,
|
||||
submission,
|
||||
audit,
|
||||
distribution,
|
||||
routes,
|
||||
});
|
||||
});
|
||||
|
||||
describe("Performing the task", () => {
|
||||
it("should performs the core logic task", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.task(round);
|
||||
const value = await namespaceWrapper.storeGet("value");
|
||||
expect(value).toBeDefined();
|
||||
expect(value).not.toBeNull();
|
||||
});
|
||||
|
||||
it("should make the submission to k2 for dummy round 1", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.submitTask(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
submission_value: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
round: Joi.number().integer().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required()
|
||||
.min(1);
|
||||
const validationResult = schema.validate(taskState?.submissions);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submission doesn't exist or is incorrect");
|
||||
}
|
||||
});
|
||||
|
||||
it("should make an audit on submission", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.auditTask(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
console.log("TASK STATE", taskState);
|
||||
console.log("audit task", taskState?.submissions_audit_trigger);
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
trigger_by: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
votes: Joi.array().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required();
|
||||
const validationResult = schema.validate(taskState?.submissions_audit_trigger);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submission audit is incorrect");
|
||||
}
|
||||
});
|
||||
it("should make the distribution submission to k2 for dummy round 1", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.submitDistributionList(round);
|
||||
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
submission_value: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
round: Joi.number().integer().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required()
|
||||
.min(1);
|
||||
console.log("Distribution submission", taskState?.distribution_rewards_submission);
|
||||
const validationResult = schema.validate(taskState?.distribution_rewards_submission);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Distribution submission doesn't exist or is incorrect");
|
||||
}
|
||||
});
|
||||
it("should make an audit on distribution submission", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.auditDistribution(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
console.log("audit task", taskState?.distributions_audit_trigger);
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
trigger_by: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
votes: Joi.array().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required();
|
||||
const validationResult = schema.validate(taskState?.distributions_audit_trigger);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Distribution audit is incorrect");
|
||||
}
|
||||
});
|
||||
|
||||
it("should make sure the submitted distribution list is valid", async () => {
|
||||
const round = 1;
|
||||
const distributionList = await namespaceWrapper.getDistributionList("", round);
|
||||
console.log("Generated distribution List", JSON.parse(distributionList.toString()));
|
||||
const schema = Joi.object().pattern(Joi.string().required(), Joi.number().integer().required()).required();
|
||||
const validationResult = schema.validate(JSON.parse(distributionList.toString()));
|
||||
console.log(validationResult);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submitted distribution list is not valid");
|
||||
}
|
||||
});
|
||||
|
||||
it("should test the endpoint", async () => {
|
||||
const response = await axios.get("http://localhost:3000");
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.data).toEqual({ message: "Running", status: 200 });
|
||||
});
|
||||
|
||||
it("should generate a empty distribution list when submission is 0", async () => {
|
||||
const submitters: Submitter[] = [];
|
||||
const bounty = Math.floor(Math.random() * 1e15) + 1;
|
||||
const roundNumber = Math.floor(Math.random() * 1e5) + 1;
|
||||
const distributionList = await distribution(submitters, bounty, roundNumber);
|
||||
expect(distributionList).toEqual({});
|
||||
});
|
||||
|
||||
it("should generate a distribution list contains all the submitters", async () => {
|
||||
const simulatedSubmitters = 5;
|
||||
const submitters: Submitter[] = [];
|
||||
// 10k is the rough maximum number of submitters
|
||||
for (let i = 0; i < simulatedSubmitters; i++) {
|
||||
const publicKey = `mockPublicKey${i}`;
|
||||
submitters.push({
|
||||
publicKey,
|
||||
votes: Math.floor(Math.random() * simulatedSubmitters) - 5000,
|
||||
stake: Math.floor(Math.random() * 1e9) + 1,
|
||||
});
|
||||
}
|
||||
const bounty = Math.floor(Math.random() * 1e15) + 1;
|
||||
const roundNumber = 1;
|
||||
const distributionList = await distribution(submitters, bounty, roundNumber);
|
||||
expect(Object.keys(distributionList).length).toBe(submitters.length);
|
||||
expect(Object.keys(distributionList).sort()).toEqual(submitters.map((submitter) => submitter.publicKey).sort());
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
_server.close();
|
||||
});
|
||||
import { initializeTaskManager, taskRunner } from "@_koii/task-manager";
|
||||
import { setup } from "../src/task/0-setup";
|
||||
import { task } from "../src/task/1-task";
|
||||
import { submission } from "../src/task/2-submission";
|
||||
import { audit } from "../src/task/3-audit";
|
||||
import { distribution } from "../src/task/4-distribution";
|
||||
import { routes } from "../src/task/5-routes";
|
||||
import { namespaceWrapper, _server } from "@_koii/task-manager/namespace-wrapper";
|
||||
import Joi from "joi";
|
||||
import axios from "axios";
|
||||
import { Submitter } from "@_koii/task-manager";
|
||||
beforeAll(async () => {
|
||||
await namespaceWrapper.defaultTaskSetup();
|
||||
initializeTaskManager({
|
||||
setup,
|
||||
task,
|
||||
submission,
|
||||
audit,
|
||||
distribution,
|
||||
routes,
|
||||
});
|
||||
});
|
||||
|
||||
describe("Performing the task", () => {
|
||||
it("should performs the core logic task", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.task(round);
|
||||
const value = await namespaceWrapper.storeGet("value");
|
||||
expect(value).toBeDefined();
|
||||
expect(value).not.toBeNull();
|
||||
});
|
||||
|
||||
it("should make the submission to k2 for dummy round 1", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.submitTask(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
submission_value: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
round: Joi.number().integer().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required()
|
||||
.min(1);
|
||||
const validationResult = schema.validate(taskState?.submissions);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submission doesn't exist or is incorrect");
|
||||
}
|
||||
});
|
||||
|
||||
it("should make an audit on submission", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.auditTask(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
console.log("TASK STATE", taskState);
|
||||
console.log("audit task", taskState?.submissions_audit_trigger);
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
trigger_by: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
votes: Joi.array().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required();
|
||||
const validationResult = schema.validate(taskState?.submissions_audit_trigger);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submission audit is incorrect");
|
||||
}
|
||||
});
|
||||
it("should make the distribution submission to k2 for dummy round 1", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.submitDistributionList(round);
|
||||
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
submission_value: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
round: Joi.number().integer().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required()
|
||||
.min(1);
|
||||
console.log("Distribution submission", taskState?.distribution_rewards_submission);
|
||||
const validationResult = schema.validate(taskState?.distribution_rewards_submission);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Distribution submission doesn't exist or is incorrect");
|
||||
}
|
||||
});
|
||||
it("should make an audit on distribution submission", async () => {
|
||||
const round = 1;
|
||||
await taskRunner.auditDistribution(round);
|
||||
const taskState = await namespaceWrapper.getTaskState({});
|
||||
console.log("audit task", taskState?.distributions_audit_trigger);
|
||||
const schema = Joi.object()
|
||||
.pattern(
|
||||
Joi.string(),
|
||||
Joi.object().pattern(
|
||||
Joi.string(),
|
||||
Joi.object({
|
||||
trigger_by: Joi.string().required(),
|
||||
slot: Joi.number().integer().required(),
|
||||
votes: Joi.array().required(),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.required();
|
||||
const validationResult = schema.validate(taskState?.distributions_audit_trigger);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Distribution audit is incorrect");
|
||||
}
|
||||
});
|
||||
|
||||
it("should make sure the submitted distribution list is valid", async () => {
|
||||
const round = 1;
|
||||
const distributionList = await namespaceWrapper.getDistributionList("", round);
|
||||
console.log("Generated distribution List", JSON.parse(distributionList.toString()));
|
||||
const schema = Joi.object().pattern(Joi.string().required(), Joi.number().integer().required()).required();
|
||||
const validationResult = schema.validate(JSON.parse(distributionList.toString()));
|
||||
console.log(validationResult);
|
||||
try {
|
||||
expect(validationResult.error).toBeUndefined();
|
||||
} catch (e) {
|
||||
throw new Error("Submitted distribution list is not valid");
|
||||
}
|
||||
});
|
||||
|
||||
it("should test the endpoint", async () => {
|
||||
const response = await axios.get("http://localhost:3000");
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.data).toEqual({ message: "Running", status: 200 });
|
||||
});
|
||||
|
||||
it("should generate a empty distribution list when submission is 0", async () => {
|
||||
const submitters: Submitter[] = [];
|
||||
const bounty = Math.floor(Math.random() * 1e15) + 1;
|
||||
const roundNumber = Math.floor(Math.random() * 1e5) + 1;
|
||||
const distributionList = await distribution(submitters, bounty, roundNumber);
|
||||
expect(distributionList).toEqual({});
|
||||
});
|
||||
|
||||
it("should generate a distribution list contains all the submitters", async () => {
|
||||
const simulatedSubmitters = 5;
|
||||
const submitters: Submitter[] = [];
|
||||
// 10k is the rough maximum number of submitters
|
||||
for (let i = 0; i < simulatedSubmitters; i++) {
|
||||
const publicKey = `mockPublicKey${i}`;
|
||||
submitters.push({
|
||||
publicKey,
|
||||
votes: Math.floor(Math.random() * simulatedSubmitters) - 5000,
|
||||
stake: Math.floor(Math.random() * 1e9) + 1,
|
||||
});
|
||||
}
|
||||
const bounty = Math.floor(Math.random() * 1e15) + 1;
|
||||
const roundNumber = 1;
|
||||
const distributionList = await distribution(submitters, bounty, roundNumber);
|
||||
expect(Object.keys(distributionList).length).toBe(submitters.length);
|
||||
expect(Object.keys(distributionList).sort()).toEqual(submitters.map((submitter) => submitter.publicKey).sort());
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
_server.close();
|
||||
});
|
||||
|
Reference in New Issue
Block a user