Skip to content

Commit 070a59e

Browse files
committed
initial commit
0 parents  commit 070a59e

36 files changed

+15216
-0
lines changed

.github/workflows/validate.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: deploy
2+
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.ref }}
5+
cancel-in-progress: true
6+
7+
on:
8+
push:
9+
branches:
10+
- 'main'
11+
pull_request:
12+
branches:
13+
- 'main'
14+
jobs:
15+
setup:
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest, windows-latest, macos-latest]
19+
runs-on: ${{ matrix.os }}
20+
steps:
21+
- name: ⬇️ Checkout repo
22+
uses: actions/checkout@v4
23+
24+
- name: ⎔ Setup node
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: 20
28+
29+
- name: ▶️ Run setup script
30+
run: npm run setup
31+
32+
- name: ʦ TypeScript
33+
run: npm run typecheck
34+
35+
- name: ⬣ ESLint
36+
run: npm run lint
37+
38+
deploy:
39+
name: 🚀 Deploy
40+
runs-on: ubuntu-latest
41+
# only deploy main branch on pushes on non-forks
42+
if:
43+
${{ github.ref == 'refs/heads/main' && github.event_name == 'push' &&
44+
github.repository_owner == 'epicweb-dev' }}
45+
46+
steps:
47+
- name: ⬇️ Checkout repo
48+
uses: actions/checkout@v4
49+
50+
- name: 🎈 Setup Fly
51+
uses: superfly/flyctl-actions/[email protected]
52+
53+
- name: 🚀 Deploy
54+
run: flyctl deploy --remote-only
55+
working-directory: ./epicshop
56+
env:
57+
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
node_modules
2+
3+
workspace/
4+
**/.cache/
5+
**/build/
6+
**/public/build
7+
**/playwright-report
8+
data.db
9+
/playground
10+
**/tsconfig.tsbuildinfo
11+
12+
# in a real app you'd want to not commit the .env
13+
# file as well, but since this is for a workshop
14+
# we're going to keep them around.
15+
# .env

.npmrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
legacy-peer-deps=true
2+
registry=https://registry.npmjs.org/

.prettierignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
**/node_modules/**
2+
**/.cache/**
3+
**/build/**
4+
**/dist/**
5+
**/public/build/**
6+
**/package-lock.json
7+
**/playwright-report/**

.vscode/extensions.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"recommendations": [
3+
"dbaeumer.vscode-eslint",
4+
"esbenp.prettier-vscode",
5+
"bradlc.vscode-tailwindcss",
6+
"neotan.vscode-auto-restart-typescript-eslint-servers",
7+
"prisma.prisma",
8+
"qwtel.sqlite-viewer"
9+
]
10+
}

.vscode/settings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"typescript.preferences.autoImportFileExcludePatterns": [
3+
"@remix-run/server-runtime",
4+
"@remix-run/router",
5+
"react-router-dom",
6+
"react-router"
7+
],
8+
"workbench.editorAssociations": {
9+
"*.db": "sqlite-viewer.view"
10+
}
11+
}

LICENSE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
This material is available for private, non-commercial use under the
2+
[GPL version 3](http://www.gnu.org/licenses/gpl-3.0-standalone.html). If you
3+
would like to use this material to conduct your own workshop, please contact us
4+

README.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<div>
2+
<h1 align="center"><a href="https://www.epicweb.dev/workshops">React Component Testing with Vitest</a></h1>
3+
<strong align="center">
4+
Learn how to test React components in the actual browser with Vitest.
5+
</strong>
6+
</div>
7+
8+
<hr />
9+
10+
<div align="center">
11+
<a
12+
alt="Epic Web logo with the words Deployed Version"
13+
href="https://epicweb-dev-react-component-testing-with-vitest.fly.dev/"
14+
>
15+
<img
16+
width="300px"
17+
src="https://github-production-user-asset-6210df.s3.amazonaws.com/1500684/254000390-447a3559-e7b9-4918-947a-1b326d239771.png"
18+
/>
19+
</a>
20+
</div>
21+
22+
<hr />
23+
24+
<!-- prettier-ignore-start -->
25+
[![Build Status][build-badge]][build]
26+
[![GPL 3.0 License][license-badge]][license]
27+
[![Code of Conduct][coc-badge]][coc]
28+
<!-- prettier-ignore-end -->
29+
30+
## Prerequisites
31+
32+
- TODO: add prerequisites
33+
- Some
34+
- Pre-requisite
35+
- links
36+
- here
37+
38+
## Pre-workshop Resources
39+
40+
Here are some resources you can read before taking the workshop to get you up to
41+
speed on some of the tools and concepts we'll be covering:
42+
43+
- TODO: add resources
44+
45+
## System Requirements
46+
47+
- [git][git] v2.18 or greater
48+
- [NodeJS][node] v18 or greater
49+
- [npm][npm] v8 or greater
50+
51+
All of these must be available in your `PATH`. To verify things are set up
52+
properly, you can run this:
53+
54+
```shell
55+
git --version
56+
node --version
57+
npm --version
58+
```
59+
60+
If you have trouble with any of these, learn more about the PATH environment
61+
variable and how to fix it here for [windows][win-path] or
62+
[mac/linux][mac-path].
63+
64+
## Setup
65+
66+
This is a pretty large project (it's actually many apps in one) so it can take
67+
several minutes to get everything set up the first time. Please have a strong
68+
network connection before running the setup and grab a snack.
69+
70+
> **Warning**: This repo is _very_ large. Make sure you have a good internet
71+
> connection before you start the setup process. The instructions below use
72+
> `--depth` to limit the amount you download, but if you have a slow connection,
73+
> or you pay for bandwidth, you may want to find a place with a better
74+
> connection.
75+
76+
Follow these steps to get this set up:
77+
78+
```sh nonumber
79+
git clone --depth 1 https://github.com/epicweb-dev/react-component-testing-with-vitest.git
80+
cd react-component-testing-with-vitest
81+
npm run setup
82+
```
83+
84+
If you experience errors here, please open [an issue][issue] with as many
85+
details as you can offer.
86+
87+
## The Workshop App
88+
89+
Learn all about the workshop app on the
90+
[Epic Web Getting Started Guide](https://www.epicweb.dev/get-started).
91+
92+
[![Kent with the workshop app in the background](https://github-production-user-asset-6210df.s3.amazonaws.com/1500684/280407082-0e012138-e01d-45d5-abf2-86ffe5d03c69.png)](https://www.epicweb.dev/get-started)
93+
94+
<!-- prettier-ignore-start -->
95+
[npm]: https://www.npmjs.com/
96+
[node]: https://nodejs.org
97+
[git]: https://git-scm.com/
98+
[build-badge]: https://img.shields.io/github/actions/workflow/status/epicweb-dev/react-component-testing-with-vitest/validate.yml?branch=main&logo=github&style=flat-square
99+
[build]: https://github.com/epicweb-dev/react-component-testing-with-vitest/actions?query=workflow%3Avalidate
100+
[license-badge]: https://img.shields.io/badge/license-GPL%203.0%20License-blue.svg?style=flat-square
101+
[license]: https://github.com/epicweb-dev/react-component-testing-with-vitest/blob/main/LICENSE
102+
[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
103+
[coc]: https://kentcdodds.com/conduct
104+
[win-path]: https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/
105+
[mac-path]: http://stackoverflow.com/a/24322978/971592
106+
[issue]: https://github.com/epicweb-dev/react-component-testing-with-vitest/issues/new
107+
<!-- prettier-ignore-end -->

SETUP_STEPS.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Setup Steps
2+
3+
1. Download
4+
```sh
5+
npx degit epicweb-dev/workshop-template YOUR_REPO_NAME
6+
```
7+
1. Find/replace github repo name from "workshop-template" to "your-repo-name"
8+
(the org is already set to "epicweb-dev")
9+
1. Find/replace the title of the workshop from "Workshop Title 🎃" to "Your
10+
Workshop Title 🦊" (emoji optional, but fun, choose something you think
11+
represents your topic in some clever way).
12+
1. Find/replace the subtitle of the workshop from "Workshop subtitle" to "Your
13+
subtitle" (this will appear on the top of the README as well as on the
14+
`og:image` when shared on social media)
15+
1. Update the workshop summary in the `README.md`
16+
1. Update the Prerequisites, pre-workshop resources, and if necessary system
17+
requirements in the `README.md`
18+
1. Update `epicshop.instructor` and `author` properties in `package.json`
19+
1. Update the `public/images/instructor.png` with your own image
20+
1. Update all dependencies
21+
```sh
22+
./epicshop/update-deps.sh
23+
```
24+
1. Ask Kent to create a Fly app for your workshop to deploy to. Just tell him
25+
what it's called in the `epicshop/fly.toml`. No need to wait on Kent for this
26+
step, just let him know and continue to the next step, he'll get to it soon.
27+
1. Initialize git and create a github repo on `epicweb-dev` with the name you
28+
chose
29+
30+
And as the last step, delete this file, create your initial commit, push it, and
31+
start working on your exercises!

epicshop/.npmrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
legacy-peer-deps=true
2+
registry=https://registry.npmjs.org/

0 commit comments

Comments
 (0)