mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { promises as fs } from "fs";
 | |
| 
 | |
| import { join } from "path";
 | |
| import { execScript } from "./command";
 | |
| 
 | |
| import { task } from "hardhat/config";
 | |
| 
 | |
| 
 | |
| let start: number, end: number;
 | |
| 
 | |
| task("run_tests", "runs specified test on a specified chain")
 | |
| .addPositionalParam("chain")
 | |
| .addPositionalParam("test")
 | |
| .setAction(async (taskArgs) => {
 | |
|   const chain = taskArgs.chain;
 | |
|   const test = taskArgs.test;
 | |
|   await testRunner(chain,test)
 | |
|   .then(() =>
 | |
|     console.log(
 | |
|       `🙌 finished the test runner, time taken ${(end - start) / 1000} sec`
 | |
|     )
 | |
|   )
 | |
|   .catch((err) => console.error("❌ failed due to error: ", err));
 | |
| 
 | |
| });
 | |
| 
 | |
| async function testRunner(chain: string, testName: string) {
 | |
| 
 | |
|   const testsPath = join(__dirname, "../../test", chain);
 | |
|   await fs.access(testsPath);
 | |
|   const availableTests = await fs.readdir(testsPath);
 | |
|   if (availableTests.length === 0) {
 | |
|     throw new Error(`No tests available for ${chain}`);
 | |
|   }
 | |
| 
 | |
|   start = Date.now();
 | |
|   let path: string;
 | |
|   if (testName === "all") {
 | |
|     for (let test of availableTests) {
 | |
|       path = join(testsPath, test);
 | |
|       path += "/*";
 | |
|       await execScript({
 | |
|         cmd: "npx",
 | |
|         args: ["hardhat", "test", path],
 | |
|         env: {
 | |
|           networkType: chain,
 | |
|         },
 | |
|       }).catch((err)=>console.log(`failed ${test}`))
 | |
|     }
 | |
|   } else {
 | |
|     path = join(testsPath, testName);
 | |
|     path += "/*";
 | |
| 
 | |
|     await execScript({
 | |
|       cmd: "npx",
 | |
|       args: ["hardhat", "test", path],
 | |
|       env: {
 | |
|         networkType: chain,
 | |
|       },
 | |
|     });
 | |
|   }
 | |
|   end = Date.now();
 | |
| } | 
