| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- 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));
 
-   });
 
- });
 
 
  |