
Security News
Scaling Socket from Zero to 10,000+ Organizations
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.
@coasys/ad4m-test
Advanced tools
This is a testing library for testing languages for ad4m. This package internally uses ad4m-host (https://github.com/perspect3vism/ad4m/tree/dev/host) to start and interact with ad4m-executor. For more detailed example look go here
npm:
npm install @coasys/ad4m-test
yarn:
yarn add @coasys/ad4m-test
You can write tests like you would with any other testing framework. You can use the helper methods to interact with the ad4m-executor.
example
const { spawnExpressionAgent, spawnLinkAgent } = require('@coasys/ad4m-test/helpers')
describe("Expression", () => {
it("Create Expression", async () => {
const agent = await spawnExpressionAgent()
const exp = await agent.create("{\"name\": \"hello world!\"}");
expect(exp).not.toBeNull()
const fetched = await agent.get(exp);
expect(fetched).not.toBeNull()
})
})
describe("Link", () => {
it("Create Link", async () => {
const agent = await spawnLinkAgent();
const all = await agent.queryLinks({});
expect(all.length).toBe(0)
const link = await agent.addLink({source:"root", predicate: "soic://test", target:"QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy"})
const all1 = await agent.queryLinks({});
expect(all1.length).toBe(1)
expect(all1[0].data.source).toBe(link.data.source)
expect(all1[0].data.predicate).toBe(link.data.predicate)
expect(all1[0].data.target).toBe(link.data.target)
});
})
Then your can run the test like so:
ad4m-test --test ./expression.test.js --bundle languages/sdp.js --meta '{\"name\":\"shortform-expression\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'
Running the below command will start a local server which will host the ExpressionUI which can be used to test UI for the expression language.
ad4m-test --ui --bundle languages/sdp.js --meta '{\"name\":\"shortform-expression\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'
Cli params:
relativePath | rp - Relative path to the appdata for ad4m-host to store binariestest | t - Runs test on a single filebundle | b - Language bundle for the language to be testedmeta | m - Meta information for the language to be installeddefaultLangPath | dlp - Local bulid-in language to be used instead of the packaged oneshideLogs | hl - Hide the ad4m-test logsui - Starts a local server with expressionUI loaded for testing.Helpers:
spawnExpressionAgent() - Spawns a agent that can work with expressions.spawnLinkAgent() - Spawns an agent that can work with link and multiple agents are part of same neighbourhood to similify testing.FAQs
Testing library to test ad4m languages
We found that @coasys/ad4m-test demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.

Research
Socket Threat Research maps a rare inside look at OtterCookie’s npm-Vercel-GitHub chain, adding 197 malicious packages and evidence of North Korean operators.

Research
Socket researchers identified a malicious Chrome extension that manipulates Raydium swaps to inject an undisclosed SOL transfer, quietly routing fees to an attacker wallet.