https://github.com/epicweb-dev/spacewave-stack
https://github.com/epicweb-dev/spacewave-stack
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/epicweb-dev/spacewave-stack
- Owner: epicweb-dev
- License: other
- Archived: true
- Created: 2023-01-24T00:36:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-26T02:35:28.000Z (about 3 years ago)
- Last Synced: 2025-03-12T18:32:21.546Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 505 KB
- Stars: 20
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# REPLACE_WITH_APP_NAME
Let's launch together!
## Development
- Initial setup:
```sh
npm run setup
```
- Start dev server:
```sh
npm run dev
```
This starts your app in development mode, rebuilding assets on file changes.
The database seed script creates a new user with some data you can use to get
started:
- Email: `kody@kcd.dev`
- Password: `kodylovesyou`
### Connecting to your database
The sqlite database lives at `/data/sqlite.db` in the deployed application. You
can connect to the live database by running `fly ssh console -C database-cli`.
## GitHub Actions
We use GitHub Actions for continuous integration and deployment. Anything that
gets into the `main` branch will be deployed to production after running
tests/build/etc. Anything in the `dev` branch will be deployed to staging.
## Testing
### Playwright
We use Playwright for our End-to-End tests in this project. You'll find those in
the `tests` directory. As you make changes, add to an existing file or create a
new file in the `tests` directory to test your changes.
To run these tests in development, run `npm run test:e2e:dev` which will start
the dev server for the app and run Playwright on it.
We have a fixture for testing authenticated features without having to go
through the login flow:
```ts
test('my test', async ({ page, login }) => {
const user = await login()
// you are now logged in
})
```
We also auto-delete the user at the end of your test. That way, we can keep your
local db clean and keep your tests isolated from one another.
### Vitest
For lower level tests of utilities and individual components, we use `vitest`.
We have DOM-specific assertion helpers via
[`@testing-library/jest-dom`](https://testing-library.com/jest-dom).
### Type Checking
This project uses TypeScript. It's recommended to get TypeScript set up for your
editor to get a really great in-editor experience with type checking and
auto-complete. To run type checking across the whole project, run
`npm run typecheck`.
### Linting
This project uses ESLint for linting. That is configured in `.eslintrc.js`.
### Formatting
We use [Prettier](https://prettier.io/) for auto-formatting in this project.
It's recommended to install an editor plugin (like the
[VSCode Prettier plugin](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode))
to get auto-formatting on save. There's also a `npm run format` script you can
run to format all files in the project.