diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e72637c..7d585ef 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,5 +5,5 @@ # the repo. Unless a later match takes precedence, # @global-owner1 and @global-owner2 will be requested for # review when someone opens a pull request. -* @ann-kilzer +* @ann-kilzer @sirbully diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/pull_request_template.md rename to .github/pull_request_template.md diff --git a/CNAME b/CNAME deleted file mode 100644 index fc493dc..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -www.womeninsoftware.jp \ No newline at end of file diff --git a/README.md b/README.md index 2df1d89..ffae4da 100644 --- a/README.md +++ b/README.md @@ -6,31 +6,55 @@ # WiSE JP Homepage -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. -Currently, two official plugins are available: +## Prerequisites -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +1. Review the [CONTRIBUTING](https://github.com/WomenInSoftwareEngineeringJP/home/blob/main/CONTRIBUTING.md) guidelines +2. NodeJS to match the version [here](https://github.com/WomenInSoftwareEngineeringJP/home/blob/main/.nvmrc) -## Expanding the ESLint configuration +## Running the app locally -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: +Install dependencies +```sh +npm i +``` -- Configure the top-level `parserOptions` property like this: +Run for dev mode +```sh +npm run dev +``` -```js -export default { - // other rules... - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - project: ['./tsconfig.json', './tsconfig.node.json'], - tsconfigRootDir: __dirname, - }, -} +Build for prod +```sh +npm run build ``` -- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` -- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list + +## Quality Strategy + +### Unit tests 📦️ +We are using [Vitest](https://vitest.dev/guide/) +and [Testing Library](https://testing-library.com/docs/react-testing-library/intro/) for our unit tests. + +Please aim for about 80% or greater test coverage. Perfection on metrics can often be the wrong target, so we aim for "good enough" + +Automated tests are incorporated into GitHub Actions so we can easily see if our application is safe to deploy. + +You can run the unit tests like so: + +Command lines +```sh +npm run test +``` + +[UI Mode](https://vitest.dev/guide/ui) +```sh +npm run test:ui +``` + +When writing new tests, please follow the [Testing Library Guiding Principles](https://testing-library.com/docs/guiding-principles) + + +### End-to-end (E2E) tests ↔️ + +We will use [Playwright](https://playwright.dev/) (to be installed after #4) for testing. diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index e042ffe..baec7d0 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -1,14 +1,20 @@ import { FC } from 'react'; import BottomNavigation from '@mui/material/BottomNavigation' import Paper from '@mui/material/Paper' -import StarIcon from '@mui/icons-material/Star' +import InstagramIcon from '@mui/icons-material/Instagram'; +import LinkedInIcon from '@mui/icons-material/LinkedIn'; +import FacebookIcon from '@mui/icons-material/Facebook'; +import GitHubIcon from '@mui/icons-material/GitHub'; import FooterIcon from './FooterIcon'; const Footer: FC = () => { return - } href="https://example.com" /> + } href="https://www.instagram.com/womeninsoftwarejp/" /> + } href="https://www.linkedin.com/company/womeninsoftwarejp/" /> + } href="https://www.facebook.com/womeninsoftwarejp/" /> + } href="https://github.com/WomenInSoftwareEngineeringJP" /> } diff --git a/src/components/Footer/__test__/Footer.test.tsx b/src/components/Footer/__test__/Footer.test.tsx index 37c425e..b2213a5 100644 --- a/src/components/Footer/__test__/Footer.test.tsx +++ b/src/components/Footer/__test__/Footer.test.tsx @@ -6,8 +6,18 @@ import Footer from '../Footer' describe('Footer', () => { it('should display the Footer with relevant links', async () => { render(