{"id":21045506,"url":"https://github.com/ymzuiku/testflowy","last_synced_at":"2025-08-02T21:06:46.410Z","repository":{"id":190514139,"uuid":"526940167","full_name":"ymzuiku/testflowy","owner":"ymzuiku","description":"Auto testing plant, SolidJS + Nodejs","archived":false,"fork":false,"pushed_at":"2025-07-10T06:07:12.000Z","size":29586,"stargazers_count":22,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-10T14:21:49.841Z","etag":null,"topics":["e2e","solidjs","testing"],"latest_commit_sha":null,"homepage":"https://flowy.amarkdown.com","language":"TypeScript","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/ymzuiku.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-20T13:51:11.000Z","updated_at":"2025-07-10T06:07:17.000Z","dependencies_parsed_at":"2025-05-15T18:38:32.048Z","dependency_job_id":"75605c81-0b64-4872-bc86-3a7f81fd7387","html_url":"https://github.com/ymzuiku/testflowy","commit_stats":null,"previous_names":["ymzuiku/testflowy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ymzuiku/testflowy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ymzuiku%2Ftestflowy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ymzuiku%2Ftestflowy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ymzuiku%2Ftestflowy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ymzuiku%2Ftestflowy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ymzuiku","download_url":"https://codeload.github.com/ymzuiku/testflowy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ymzuiku%2Ftestflowy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268454336,"owners_count":24253153,"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-08-02T02:00:12.353Z","response_time":74,"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":["e2e","solidjs","testing"],"created_at":"2024-11-19T14:22:51.746Z","updated_at":"2025-08-02T21:06:46.365Z","avatar_url":"https://github.com/ymzuiku.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Why use Testflow?\n\n[Web Site](https://flowy.amarkdown.com/)\n\n[Document](https://flowy.amarkdown.com/#/welcome/doc)\n\n## What is Testflow?\n\nTestflow aspires to become the simplest Web automated testing platform. It can help front-end engineers and test engineers record behavior operations, and share test behavior through team accounts, facilitating any member of the team to quickly and conveniently return to automated testing\n\n![](/testflowy.gif)\n\n## Testflow compared with traditional manual writing (integration) test\n\nFor manually writing integration test code, there are always the following difficulties\nHow to quickly train engineers to learn how to write automated test code?\nHow to reduce the cost of writing integration test code?\nHow to make automated testing work better in the whole team?\nIn order to better cooperate in the whole team, you need to build a set of automated test platform, which requires 1-2 senior test engineers to spend tens of days\nUsing Testflow, you can easily solve the above problems\nEngineers do not need to write test code\nEasier aggregation, replication, mocking your test tasks\nThrough the Testflow team account system, automated testing can be coordinated across the entire team\n\n## Advantages of Testflow\n\nWith Testflow, you only need to register to get a set of automated test platform. Engineers and testers do not need to write any code. Testflow will help you record your behavior and share it with the whole team to reuse your tests. All this is done in a real Web environment, without any additional virtual environment\n\n## Disadvantages of Testflow\n\nTestflow is based on a real browser environment. Its feature is that it has no construction cost and is more suitable for real business scenarios The disadvantage is that it only supports the browser platform, and the simulation of complex behavior is poor, and the ability of behavior involving external site authorization is poor (such as payment, cross-platform authorization, etc.) You need to use manual testing when it involves behavior across external sites\n\n## Prerequisites\n\nInstall pnpm:\n\n```sh\nnpm i -g pnpm\n```\n\nUse pnpm to install dependencies and link them:\n\n```\npnpm i\n```\n\n## Development\n\n```sh\npnpm dev\n```\n\n## Build\n\n```sh\npnpm build\n```\n\n## Check\n\nThe project has commit interception, but please avoid maliciously bypassing the pnpm check before committing.\n\n## Important\n\nThe package.json of the business code must have \"private\": true set to prevent accidental publishing of business code to npm.\n\nTo publish a package, all non-private packages in the packages directory will be published to npm, and the workspace:\\* dependencies will be automatically modified. Make sure the pnpm version is greater than 7.4:\n\n```sh\npnpm publish --no-git-checks -r\n```\n\n## Separating Business Code and Non-business Code\n\nKeep the business code in several projects under the apps directory; abstract the non-business code into the packages directory.\n\n## Project Constraints\n\nThe config directory contains unified eslint, ts-config, and test configurations for all projects and libraries. Reuse these configurations for all packages.\n\n## Naming Conventions\n\n1. APIs use account_read_one.\n2. Constants use ACCOUNT_READ_ONE.\n3. JavaScript functions and objects use accountReadOne.\n4. Interfaces/Types use AccountReadOne.\n\n## .env\n\nEach .env file should be configured in both the apps/xxx and packages directories because their pg_url differs.\n\n```sh\n# translate\ntranslate_appid=\"xxxxxxxxxx\"\ntranslate_password=\"xxxxxxxxxx\"\n\n# server-env\nis_dev=1\nslat=\"pkg_slat_v1\"\n\n# dbs\nredis_url=\"redis://:xxxxxxxx@127.0.0.1:9379?db=1\"\npg_url=\"postgres://postgres:xxxxxxxxxxxx@127.0.0.1:9432/db?sslmode=disable\"\n\nemail_user=\"code@mail.tesitify.com\"\nemail_pass=\"xxxxxxx\"\nemail_host=\"smtp.qcloudmail.com\"\nemail_port=\"465\"\n\nVITE_paypal_client_id=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\npaypal_client_id=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\npaypal_client_secret=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\npaypal_webhook_id=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n```\n\nIf using baidu i18n translation, please configure the env file:\n\n```sh\n# translate\ntranslate_appid=\"xxxxxx\"\ntranslate_password=\"xxxxxxxxxxxx\"\n```\n\n## .vscode Settings (Optional)\n\n`.vscode/settings.json` :\n\n```json\n{\n  \"makefile.extensionOutputFolder\": \"./.vscode\",\n  \"files.exclude\": {\n    \"**/node_modules\": true,\n    \"**/.svn\": true,\n    \"**/.hg\": true,\n    \"**/CVS\": true,\n    \"**/.DS_Store\": true,\n    \"**/Thumbs.db\": true\n  }\n}\n```\n\n## +serve Restful Semantics\n\n```sh\nCreate - POST\nRead - GET\nUpdate - PATCH\nDelete - DELETE\nCreate or update - PUT\n```\n\nWhere PUT updates if historical data is found; otherwise, it creates a new entry.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fymzuiku%2Ftestflowy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fymzuiku%2Ftestflowy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fymzuiku%2Ftestflowy/lists"}