{"id":25595488,"url":"https://github.com/polywrap/wrap-test-harness","last_synced_at":"2025-09-21T23:26:32.724Z","repository":{"id":65936377,"uuid":"532982776","full_name":"polywrap/wrap-test-harness","owner":"polywrap","description":"Test harness for all wrap-compatible languages.","archived":false,"fork":false,"pushed_at":"2023-09-23T00:11:02.000Z","size":506,"stargazers_count":1,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-21T11:45:24.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polywrap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-05T16:42:24.000Z","updated_at":"2023-09-07T03:33:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac1cb77b-0b1f-4290-ace3-520dbd1c8abe","html_url":"https://github.com/polywrap/wrap-test-harness","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/polywrap/wrap-test-harness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fwrap-test-harness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fwrap-test-harness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fwrap-test-harness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fwrap-test-harness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polywrap","download_url":"https://codeload.github.com/polywrap/wrap-test-harness/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fwrap-test-harness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276320657,"owners_count":25621975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-21T02:00:07.055Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-21T11:29:29.458Z","updated_at":"2025-09-21T23:26:32.710Z","avatar_url":"https://github.com/polywrap.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WRAP Test Harness\n### What\nSystem for running integration tests against WRAP wasm implementations.\n\n### Why\nThe purpose of this structure is to be able to create a WASM file (aka `wrap.wasm`) from different\nimplementations in an easy and scalable way; allowing us to make sure that built files are compatible \nwith the WRAP Protocol.\n\n### How\nTest cases lives in `cases` folder, organized by features/use-cases (i.e: `json-type`, `union-type`),\ninside each feature folder, we have every supported implementation (i.e: `rust`, `assemblyscript`) inside an `implementations`\nfolder, along with the [common files](#common-files) between implementations.\n\nThe problem this architecture solves is that for every case, we need to give opinionated\ninput per WASM implementation (i.e: `index.ts|lib.rs` or `Cargo.toml|package.json`), being able\nto easily add new features and/or implementations.\n\nIt consists of three main steps:\n- Build folder generation\n- Wrapper build\n- Wrapper test\n\n## Build \u0026 Contribute\n\n### Prerequisites\n- node 16.13\n- rust\n- cargo\n- npx\n- [polywrap cli](https://github.com/polywrap/toolchain/tree/origin-dev/packages/cli) \n\n### Run\n\n\u003e cargo run\n\n#### Accepted arguments:\n\n- implementation (-i | --implementation)\n- feature (-f | --feature)\n- wrappers (-w | --wrappers_path) | default: `./wrappers`\n- reset (-r | --reset)\n- verbose (-v | --verbose)\n\n#### Common files\nImplementation agnostic files. It allows to add different behavior to build \u0026 test different implementations\n- Client config (`client-config.ts`)\n- Manifest JSON (`polywrap.json`)\n- Test template JSON (`workflow.json`)\n- Any ABI import\n\n#### Environment Variables\n\n- `POLYWRAP_CLI_PATH`: Allows to pass the absolute path of local [Polywrap CLI package](https://github.com/polywrap/toolchain/tree/origin-dev/packages/cli)\n- `POLYWRAP_WASM_PATH`: Allows to pass the absolute path of local [Polywrap WASM packages](https://github.com/polywrap/toolchain/tree/origin-dev/packages/wasm)\n\nExample of how commands can be run:\n\n```shell\n# only build and test the implementations of subinvoke feature\ncargo run -- -f=subinvoke\n\n# removes `./wrappers` folder \u0026 build and test wrappers in assemblyscript implementation\ncargo run -- -r -i=as\n\n# run custom-feat feature with local CLI path in rust\nPOLYWRAP_CLI_PATH=\"/absolute/path/to/cli\" cargo run -- -r -f=custom-feat -i=rust -w=/absolute/path/to/desired/wrappers\n\n# only build wrappers and create a folder only with output files\ncargo run -- -w\n```\n\nIf you would like to run some changes from your CLI you can use the environment variables to provide the path\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolywrap%2Fwrap-test-harness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolywrap%2Fwrap-test-harness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolywrap%2Fwrap-test-harness/lists"}