import "mocha"; import { JobAccount } from "../src/index.js"; import { setupTest, TestContext } from "./utils.js"; import { OracleJob } from "@switchboard-xyz/common"; import assert from "assert"; describe("Job Tests", () => { let ctx: TestContext; before(async () => { ctx = await setupTest(); }); it("Creates a big job", async () => { const tasks: Array = Array(2000).fill( OracleJob.ValueTask.fromObject({ value: 1 }) ); const oracleJob = OracleJob.fromObject({ tasks, }); const data = OracleJob.encodeDelimited(oracleJob).finish(); const [jobAccount, jobInit] = JobAccount.createInstructions( ctx.program, ctx.program.walletPubkey, { data: data, } ); await ctx.program.signAndSendAll(jobInit); const job = await jobAccount.loadData(); assert(job.isInitializing === 0); }); it("Fails creating a job over 6400 bytes", async () => { const tasks: Array = Array(3200).fill( OracleJob.ValueTask.fromObject({ value: 1 }) ); const oracleJob = OracleJob.fromObject({ tasks, }); const data = OracleJob.encodeDelimited(oracleJob).finish(); // 6402 bytes await assert.rejects(async () => { await JobAccount.create(ctx.program, { data: data, }); }, new RegExp(/Switchboard jobs need to be less than 6400 bytes/)); }); });