mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-30 17:38:40 +00:00 
			
		
		
		
	 668e1196d1
			
		
	
	
		668e1196d1
		
			
		
	
	
	
	
		
			
			* chore: setup tauri test * chore: update test * chore: update test * chore: update test * chore: update test * refactor: test folder location * chore: remove deps * ci: fix build --------- Co-authored-by: appflowy <annie@appflowy.io> Co-authored-by: nathan <nathan@appflowy.io>
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const os = require("os");
 | |
| const path = require("path");
 | |
| const { expect } = require("chai");
 | |
| const { spawn, spawnSync } = require("child_process");
 | |
| const { Builder, By, Capabilities, until } = require("selenium-webdriver");
 | |
| const { elementIsVisible, elementLocated } = require("selenium-webdriver/lib/until.js");
 | |
| 
 | |
| // create the path to the expected application binary
 | |
| const application = path.resolve(
 | |
|   __dirname,
 | |
|   "..",
 | |
|   "..",
 | |
|   "..",
 | |
|   "src-tauri",
 | |
|   "target",
 | |
|   "release",
 | |
|   "appflowy_tauri"
 | |
| );
 | |
| 
 | |
| // keep track of the webdriver instance we create
 | |
| let driver;
 | |
| 
 | |
| // keep track of the tauri-driver process we start
 | |
| let tauriDriver;
 | |
| 
 | |
| before(async function() {
 | |
|   // set timeout to 2 minutes to allow the program to build if it needs to
 | |
|   this.timeout(120000);
 | |
| 
 | |
|   // ensure the program has been built
 | |
|   spawnSync("cargo", ["build", "--release"]);
 | |
| 
 | |
|   // start tauri-driver
 | |
|   tauriDriver = spawn(
 | |
|     path.resolve(os.homedir(), ".cargo", "bin", "tauri-driver"),
 | |
|     [],
 | |
|     { stdio: [null, process.stdout, process.stderr] }
 | |
|   );
 | |
| 
 | |
|   const capabilities = new Capabilities();
 | |
|   capabilities.set("tauri:options", { application });
 | |
|   capabilities.setBrowserName("wry");
 | |
| 
 | |
|   // start the webdriver client
 | |
|   driver = await new Builder()
 | |
|     .withCapabilities(capabilities)
 | |
|     .usingServer("http://localhost:4444/")
 | |
|     .build();
 | |
| });
 | |
| 
 | |
| after(async function() {
 | |
|   // stop the webdriver session
 | |
|   await driver.quit();
 | |
| 
 | |
|   // kill the tauri-driver process
 | |
|   tauriDriver.kill();
 | |
| });
 | |
| 
 | |
| describe("AppFlowy Unit Test", () => {
 | |
|   it("should find get started button", async () => {
 | |
|     // should sign out if already sign in
 | |
|     const getStartedButton = await driver.wait(until.elementLocated(By.xpath("//*[@id=\"root\"]/form/div/div[3]")));
 | |
|     getStartedButton.click();
 | |
|   });
 | |
| 
 | |
|   it("should get sign out button", async (done) => {
 | |
|     // const optionButton = await driver.wait(until.elementLocated(By.css('*[test-id=option-button]')));
 | |
|     // const optionButton = await driver.wait(until.elementLocated(By.id('option-button')));
 | |
|     // const optionButton = await driver.wait(until.elementLocated(By.css('[aria-label=option]')));
 | |
| 
 | |
|     // Currently, only the find className is work
 | |
|     const optionButton = await driver.wait(until.elementLocated(By.className("relative h-8 w-8")));
 | |
|     optionButton.click();
 | |
|     await new Promise((resolve) => setTimeout(resolve, 4000));
 | |
|   });
 | |
| });
 |