In order to do an integration test you would need to spawn a substrate-contracts-node and then use the polkadot.js javscript library in order to interact with it. Another way would be to use the cargo-contract command line tool in order to interact with the node. That way you could even script it with some shell script.
We use Github Actions, Cypress, and a contracts-node binary to run E2E tests for Contracts UI. Here is our CI workflow, hope it helps.
We use cypress-file-upload to attach the
.contract file to the tests.
A solution without Cypress is to rename it to
.contract file is valid JSON
import incrementer from './contracts/incrementer.json'; const wasm = incrementer.source.wasm;