From f6b782fb0e877060db80a39247acb04044023512 Mon Sep 17 00:00:00 2001
From: Muhammad Usama <musama2@unl.edu>
Date: Wed, 4 Sep 2024 15:46:46 -0500
Subject: [PATCH] counter folder removed
---
minimal-app/src/features/counter/counter.js | 36 ----------------
.../src/features/counter/counter.module.css | 7 ----
.../src/features/counter/counter.test.js | 41 -------------------
.../src/features/counter/counterSlice.js | 25 -----------
.../src/features/counter/counterSlice.test.js | 36 ----------------
5 files changed, 145 deletions(-)
delete mode 100644 minimal-app/src/features/counter/counter.js
delete mode 100644 minimal-app/src/features/counter/counter.module.css
delete mode 100644 minimal-app/src/features/counter/counter.test.js
delete mode 100644 minimal-app/src/features/counter/counterSlice.js
delete mode 100644 minimal-app/src/features/counter/counterSlice.test.js
diff --git a/minimal-app/src/features/counter/counter.js b/minimal-app/src/features/counter/counter.js
deleted file mode 100644
index a09d3e4..0000000
--- a/minimal-app/src/features/counter/counter.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import { useSelector, useDispatch } from 'react-redux';
-import PropTypes from 'prop-types';
-
-import classNames from 'classnames';
-import styles from './counter.module.css';
-
-import {
- selectValue,
- setValue,
-} from './counterSlice.js';
-
-export function Counter(props) {
- const value = useSelector(selectValue);
- const dispatch = useDispatch();
-
- const classes = classNames({
- [styles.red]: value % 2 === 0,
- [styles.blue]: value % 2 === 1,
- });
- const onClick = () => dispatch(setValue({
- value: value + 1,
- }));
-
- return (
- <label>
- {props.label}:
- <button className={classes} onClick={onClick}>
- {value}
- </button>
- </label>
- );
-}
-
-Counter.propTypes = {
- label: PropTypes.string.isRequired,
-};
diff --git a/minimal-app/src/features/counter/counter.module.css b/minimal-app/src/features/counter/counter.module.css
deleted file mode 100644
index d78b8d9..0000000
--- a/minimal-app/src/features/counter/counter.module.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.red {
- color: rgba(255 0 0 / 100%);
-}
-
-.blue {
- color: rgba(0 0 255 / 100%);
-}
diff --git a/minimal-app/src/features/counter/counter.test.js b/minimal-app/src/features/counter/counter.test.js
deleted file mode 100644
index fedc10f..0000000
--- a/minimal-app/src/features/counter/counter.test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { render, screen } from '@testing-library/react';
-import userEvent from '@testing-library/user-event';
-import '../../testing/mockRedux.js';
-
-import { Counter } from './counter.js';
-
-import {
- selectValue,
- setValue,
-} from './counterSlice.js';
-jest.mock('./counterSlice.js', () => ({
- selectValue: jest.fn().mockName('selectValue'),
- setValue: jest.fn().mockName('setValue'),
-}));
-
-describe('the button', () => {
- test('displays the value from the store', () => {
- selectValue.mockReturnValue(9999);
- render(<Counter label={'Foo'} />);
- expect(screen.getByRole('button')).toHaveTextContent(/^9999$/);
- });
- test('is red when the value from the store is even', () => {
- selectValue.mockReturnValue(9998);
- render(<Counter label={'Foo'} />);
- expect(screen.getByRole('button')).toHaveClass('red');
- });
- test('is blue when the value from the store is odd', () => {
- selectValue.mockReturnValue(9999);
- render(<Counter label={'Foo'} />);
- expect(screen.getByRole('button')).toHaveClass('blue');
- });
- test('increments the value in the store when clicked', async() => {
- selectValue.mockReturnValue(9999);
- render(<Counter label={'Foo'} />);
- await userEvent.click(screen.getByRole('button'));
- expect(setValue).toHaveBeenCalledTimes(1);
- expect(setValue).toHaveBeenCalledWith({
- value: 9999 + 1,
- });
- });
-});
diff --git a/minimal-app/src/features/counter/counterSlice.js b/minimal-app/src/features/counter/counterSlice.js
deleted file mode 100644
index 60b530e..0000000
--- a/minimal-app/src/features/counter/counterSlice.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { createSlice } from '@reduxjs/toolkit';
-
-const counterSlice = createSlice({
- name: 'counter',
- initialState: {
- value: 0,
- },
- reducers: {
- setValue: (counter, action) => {
- const {
- value,
- } = action.payload;
- counter.value = value;
- },
- },
-});
-export default counterSlice;
-
-export const {
- setValue,
-} = counterSlice.actions;
-
-export function selectValue(state) {
- return state.counter.value;
-}
diff --git a/minimal-app/src/features/counter/counterSlice.test.js b/minimal-app/src/features/counter/counterSlice.test.js
deleted file mode 100644
index b98407b..0000000
--- a/minimal-app/src/features/counter/counterSlice.test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import counterSlice, {
- selectValue,
- setValue,
-} from './counterSlice.js';
-
-describe('the initial state', () => {
- test('has a value of zero', () => {
- const state = counterSlice.reducer(undefined, {});
- expect(state).toEqual({
- value: 0,
- });
- });
-});
-
-describe('selectValue', () => {
- test('reads the stored value', () => {
- const state = {
- value: 9999,
- };
- const result = selectValue({ [counterSlice.name]: state });
- expect(result).toBe(9999);
- });
-});
-
-describe('setValue', () => {
- test('overwrites the stored value', () => {
- const state = counterSlice.reducer({
- value: 8888,
- }, setValue({
- value: 9999,
- }));
- expect(state).toEqual({
- value: 9999,
- });
- });
-});
--
GitLab