ShellRS
ShellRS는 Rust로 작성된 무료 오픈소스 SSH 클라이언트
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Evaluate your product, not your tests. A Javascript testing framework with inline assertions and scene-based browser orchestration.
Note: Scenetest is currently quite experimental. You're welcome to check it out, but until version 1.0, the API will be breaking every once in a while. We'll include notices of breaking changes in release notes and often include instructions for LLMs to update your scenes/specs, but until we get to 1.0, I'd consider it a working experiment.
pnpm add @scenetest/checks @scenetest/vite-plugin @scenetest/scenes playwright
pnpm exec scenetest install
Scenetest drives the browser through playwright, and declares it as a peer
dependency: your project supplies it, so one copy backs both the browser
download and the run. scenetest install downloads the browser builds.
Framework bindings ship as subpaths of @scenetest/checks — import from
@scenetest/checks/react, /vue, /solid, or /svelte.
1. Add the Vite plugin:
// vite.config.ts
import scenetest from '@scenetest/vite-plugin'
export default defineConfig({
plugins: [react(), scenetest()],
})
2. Write inline assertions in components:
import { should, failed } from '@scenetest/checks/react'
function ProfileForm({ user }) {
should('user should be available', user !== undefined)
if (user?.error) failed('unexpected error state', { error: user.error })
return <form>...</form>
}
3. Write scene specs:
Choose your style — TypeScript or plain markdown:
// scenes/profile.spec.ts
import { scene } from '@scenetest/scenes'
scene('user can update their name', ({ actor }) => {
const user = actor('user')
user.openTo('/')
user
.see('name-input')
.typeInto('name-input', 'New Name')
.click('submit-button')
user.seeText('New Name')
})
Or write specs as human-readable markdown — GitHub-renderable and executable:
<!-- scenes/profile.spec.md -->
# user can update their name
user:
- openTo /
- see name-input
- typeInto name-input New Name
- click submit-button
- seeText New Name
4. Run tests:
npx scenetest
Guides
Reference
FAQ
Design Docs
| Package | Description |
|---|---|
@scenetest/vite-plugin | Vite plugin for production stripping and dev panel |
@scenetest/scenes | CLI runner for scene specs |
@scenetest/checks | Core should(), failed(), serverCheck() functions |
@scenetest/checks/react | React subpath with useCheck hook |
@scenetest/checks/vue | Vue subpath with watchCheck composable |
@scenetest/checks/solid | Solid subpath with createCheck primitive |
@scenetest/checks/svelte | Svelte subpath with checkEffect helper |
Mmmm, the short answer is "No." Scenetest's Vite plugin strips all the server assertions from the production bundle without deploying them to the server, and it doesn't inject the observer or serve the middleware that powers the collector -- and we do have (some) tests in place for this. And server assertions never have a return value anyway so data access is less of a concern.
So the attack surface is pretty small, but a security audit has not been done. Further the data collection doesn't proactively filter out things like personal data and passwords so it is best used on sample or seed data rather than in production systems.
In the future it might be nice to evolve Scenetest into a production tool for event analytics, observalibility, etc., but for now: it only runs on the dev server 😇
MIT