Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
2b5f14c
Require Hello World in the document
acbart Jan 31, 2022
a7dee05
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
3e381f3
Include the task info
acbart Jan 31, 2022
fee03d3
Merge branch 'task-first-branch' of https://github.com/UD-CISC275-S22…
acbart Jan 31, 2022
986b28a
First stab at questions
acbart Feb 2, 2022
e6b1dab
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
2c852d6
Move Question interface to separate file
acbart Feb 6, 2022
dc3662a
Create answer interface
acbart Feb 8, 2022
51221ee
First stab at nested tasks
acbart Feb 8, 2022
3a793cc
Document Question interface
acbart Feb 9, 2022
5c39a97
Expand questions test data
acbart Feb 9, 2022
6ae0b6f
Add a little hint for a tough one
acbart Feb 9, 2022
b1bbbc8
Nested tests (phew)
acbart Feb 9, 2022
ab9bfb5
Basic starter files for components
acbart Feb 9, 2022
9765863
Another extra paren error
acbart Feb 9, 2022
d6c10cd
Merge branch 'main' of https://github.com/UD-CISC275-S22/react-typesc…
acbart Feb 13, 2022
c0bbc39
Updated, complete tests for all state components
acbart Feb 13, 2022
eb40f3e
Forgot task record for state
acbart Feb 19, 2022
6669ffa
First draft of components subtasks
acbart Feb 19, 2022
562f306
Another subtask, ChooseTeam
acbart Feb 24, 2022
4a34f5f
Oops order out of operations
acbart Feb 24, 2022
7327f4c
Add headers to each subtask
acbart Feb 24, 2022
cf7c212
Make testing easier for these components
acbart Feb 24, 2022
08feee1
Ugh this component is stupid, let's just forget about it for now
acbart Feb 24, 2022
89053a4
Provide the tests for the bad components
acbart Feb 24, 2022
41387d3
First stab at form task components
acbart Feb 25, 2022
1b03faf
Provide tests, change addQuestion to changeColor
acbart Feb 27, 2022
43b41ec
Fix entering blank text for GiveAttempts
acbart Mar 10, 2022
7a20734
Include json test command here
acbart Aug 24, 2024
7fe9ca3
Require Hello World in the document
acbart Jan 31, 2022
b8b8878
Include the task info
acbart Jan 31, 2022
fbdebde
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
2f0146c
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
a6acb43
Merge branch 'task-first-branch' of https://github.com/frontend-fun/t…
acbart Aug 24, 2024
ac36b32
First set of tests
acbart Jan 30, 2022
d04739d
Some logging tests
acbart Jan 30, 2022
b26100f
More html tests
acbart Jan 30, 2022
3bf4550
Fix the image test
acbart Jan 30, 2022
8dff2b6
Updated CSS tests, left a note about additional tests
acbart Jan 31, 2022
b66d4de
See previous commit message
acbart Jan 31, 2022
0a24364
Add in new css test
acbart Aug 24, 2024
4d43d7a
Add in points
acbart Aug 24, 2024
83c4461
Basic functions tests and stubs
acbart Jan 30, 2022
a486530
Fix test organization
acbart Jan 30, 2022
9722564
Fix issue in fahrenheit conversion
acbart Jan 30, 2022
bd06d5d
Move around some of the functions
acbart Feb 3, 2022
4cd1900
Explain what the actual functions require you to do
acbart Feb 3, 2022
cf1d21a
Update formatting
acbart Aug 24, 2024
e11693a
Add in points
acbart Aug 24, 2024
7cc4e3f
First stab at array problems
acbart Feb 1, 2022
f253337
Add in the rest of the tests
acbart Feb 1, 2022
b8777b1
Fix question text
acbart Feb 1, 2022
f87771e
Update arrays.test.ts
acbart Feb 11, 2022
f0d316b
Add in points
acbart Aug 24, 2024
c2e556d
First stab at questions
acbart Feb 2, 2022
406ffb2
Move Question interface to separate file
acbart Feb 6, 2022
9b9adb6
Fix formatting
acbart Aug 24, 2024
3660252
First stab at questions
acbart Feb 2, 2022
09d3d4f
Move Question interface to separate file
acbart Feb 6, 2022
9a24024
Create answer interface
acbart Feb 8, 2022
879fe17
First stab at nested tasks
acbart Feb 8, 2022
4d29d21
Document Question interface
acbart Feb 9, 2022
d71d9fc
Expand questions test data
acbart Feb 9, 2022
c955718
Add a little hint for a tough one
acbart Feb 9, 2022
c574699
Nested tests (phew)
acbart Feb 9, 2022
a368ad0
Forgot the task record!
acbart Feb 19, 2022
304184e
Fix typo in editOption test, and missing return type for editOption
acbart Mar 1, 2022
1b76b80
Fix formatting
acbart Aug 24, 2024
23314f3
update point values for tests
acbart Aug 24, 2024
82faacc
Fix react return value
acbart Aug 24, 2024
cc7d4db
Update react tests to use async
acbart Aug 24, 2024
c419dc9
Fix linting
acbart Aug 24, 2024
444b03b
Merge branch 'task-state' into task-components
acbart Aug 24, 2024
c1aab28
Merge branch 'update-branches' into task-components
acbart Aug 24, 2024
50a9c85
Update for new react
acbart Aug 24, 2024
28ee8d2
Merge branch 'task-components' into task-forms
acbart Aug 24, 2024
084abb4
Update the code for new version of react
acbart Aug 24, 2024
c95dc0f
This one too
acbart Aug 24, 2024
3119c0f
Add in points
acbart Aug 24, 2024
64f5127
Added name to App
CosmoKittikus Feb 5, 2026
2651e24
Merge remote-tracking branch 'upstream/task-first-branch' into solved…
CosmoKittikus Feb 11, 2026
599dcda
Completed Task 2 (hopefully)
CosmoKittikus Feb 11, 2026
075a1c5
Changed it to test Pull Requests properly
CosmoKittikus Feb 11, 2026
e610fbf
Merge pull request #2 from CosmoKittikus/solved-first-branch
CosmoKittikus Feb 11, 2026
a55b415
Merge remote-tracking branch 'upstream/task-html-css' into solved-htm…
CosmoKittikus Feb 11, 2026
6b89bef
Merge pull request #3 from CosmoKittikus/solved-html-css
CosmoKittikus Feb 11, 2026
708bb61
Completed all of Task 3
CosmoKittikus Feb 11, 2026
2b82a23
Merge pull request #4 from CosmoKittikus/solved-html-css
CosmoKittikus Feb 11, 2026
db9b8be
Merge remote-tracking branch 'upstream/task-functions' into solved-fu…
CosmoKittikus Feb 18, 2026
a9b3f09
Task 4 done
CosmoKittikus Feb 18, 2026
9c9f4a9
Merge pull request #5 from CosmoKittikus/solved-functions
CosmoKittikus Feb 18, 2026
ea99e73
Rewrote it to be more understandable and uniform for me to look back …
CosmoKittikus Feb 18, 2026
90c9458
Merge pull request #6 from CosmoKittikus/solved-functions
CosmoKittikus Feb 18, 2026
0f9d05f
Merge remote-tracking branch 'upstream/task-arrays' into solved-arrays
CosmoKittikus Feb 18, 2026
13b5841
Task 5 done
CosmoKittikus Feb 19, 2026
105da25
Merge pull request #7 from CosmoKittikus/solved-arrays
CosmoKittikus Feb 19, 2026
7c93e2d
Did task 5 right this time, with no for loops
CosmoKittikus Feb 19, 2026
50ec120
Merge pull request #8 from CosmoKittikus/solved-arrays
CosmoKittikus Feb 19, 2026
412c161
Merge remote-tracking branch 'upstream/task-objects' into solved-objects
CosmoKittikus Feb 25, 2026
8f7f8d6
First and Second Questions done
CosmoKittikus Feb 25, 2026
8e1ab59
Third and Fourth Questions done
CosmoKittikus Feb 25, 2026
14e36b4
Fifth and Sixth Questions done
CosmoKittikus Feb 25, 2026
c3e3294
Seventh and Eigth Questions done
CosmoKittikus Feb 25, 2026
a395aa4
Ninth and Tenth Questions
CosmoKittikus Feb 25, 2026
ab5b27d
Merge pull request #9 from CosmoKittikus/solved-objects
CosmoKittikus Feb 25, 2026
5dfe9ef
objects.ts restored
CosmoKittikus Feb 26, 2026
903ff58
Git questions 1, 3, 4, 5, and 6 done
CosmoKittikus Feb 26, 2026
6d31317
Questions 1-8 all completed
CosmoKittikus Feb 26, 2026
e891527
Ninth and Tenth questions done
CosmoKittikus Feb 26, 2026
8202e3e
Eleventh and Twelth questions complete
CosmoKittikus Feb 26, 2026
db05429
Completed Task 7
CosmoKittikus Feb 26, 2026
80d33a1
Merge branch 'main' into solved-nested
CosmoKittikus Mar 4, 2026
3d2b922
Merge pull request #10 from CosmoKittikus/solved-nested
CosmoKittikus Mar 4, 2026
feed8ad
Merge branch 'main' of https://github.com/frontend-fun/tasks into sol…
CosmoKittikus Mar 4, 2026
2ea18e4
Merge remote-tracking branch 'upstream/task-state' into solved-state
CosmoKittikus Mar 4, 2026
95c4515
Counter fixed and RevealAnswer completed
CosmoKittikus Mar 4, 2026
7762bec
ChangeType and StartAttempt completely implemented and functional
CosmoKittikus Mar 4, 2026
2082f39
TwoDice completed
CosmoKittikus Mar 4, 2026
87d25f4
CycleHoliday completed, all tests passed
CosmoKittikus Mar 4, 2026
d9e3762
Merge branch 'main' into solved-state
CosmoKittikus Mar 4, 2026
a4420d6
Merge pull request #11 from CosmoKittikus/solved-state
CosmoKittikus Mar 4, 2026
be5462d
Merge remote-tracking branch 'upstream/task-components' into solved-c…
CosmoKittikus Mar 4, 2026
e309b68
ChooseTeam and DoubleHalf working and passing tests. Removed redundan…
CosmoKittikus Mar 8, 2026
6432c5e
Cleaned up ChooseTeam to get rid of the error with the unused code
CosmoKittikus Mar 8, 2026
8159381
ColoredBox done and functional
CosmoKittikus Mar 8, 2026
8aaa404
ShoveBox completed, all tests passed. All bad components fixed and fu…
CosmoKittikus Mar 8, 2026
88ff31c
Merge remote-tracking branch 'upstream/task-forms' into solved-forms
CosmoKittikus Mar 15, 2026
5990680
GiveAttempts and CheckAnswers completed and tested
CosmoKittikus Mar 15, 2026
1ee9dbe
EditMode completed and tested
CosmoKittikus Mar 15, 2026
06bf189
ChangeColor working and passing all tests
CosmoKittikus Mar 15, 2026
30a6bbc
MultipleChoiceQuestions completed and functional
CosmoKittikus Mar 15, 2026
cad2340
Merge branch 'main' into solved-forms
CosmoKittikus Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added git
Empty file.
155 changes: 88 additions & 67 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"build": "react-scripts build",
"test": "react-scripts test",
"test:cov": "react-scripts test --coverage --watchAll",
"test:json": "react-scripts test --json --watchAll=false --outputFile jest-output.json --coverage",
"eject": "react-scripts eject",
"lint": "eslint ./src --ext .tsx --ext .ts --max-warnings 0",
"eslint-output": "eslint-output ./src --ext .tsx --ext .ts --max-warnings 0",
Expand Down
5 changes: 5 additions & 0 deletions public/tasks/task-arrays.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Arrays

Version: 0.0.1

Implement functions that work with arrays immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Components

Version: 0.0.1

Fix some components that are using state incorrectly.
5 changes: 5 additions & 0 deletions public/tasks/task-first-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - First Branch

Version: 0.0.1

Pass a short test to have certain text on the page.
5 changes: 5 additions & 0 deletions public/tasks/task-functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Functions

Version: 0.0.1

Implement a bunch of functions that work on primitives.
5 changes: 5 additions & 0 deletions public/tasks/task-html-css.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - HTML/CSS

Version: 0.0.1

Add in some HTML and CSS, including a fancy looking button.
5 changes: 5 additions & 0 deletions public/tasks/task-nested.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Nested

Version: 0.0.1

Implement functions that work with nested arrays and objects immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-objects.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Objects

Version: 0.0.1

Implement functions that work with objects immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - State

Version: 0.0.1

Create some new components that have React State.
150 changes: 146 additions & 4 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,158 @@
import React from "react";
import "./App.css";
import { ChangeType } from "./components/ChangeType";
import { RevealAnswer } from "./components/RevealAnswer";
import { StartAttempt } from "./components/StartAttempt";
import { TwoDice } from "./components/TwoDice";
import { CycleHoliday } from "./components/CycleHoliday";
import { Counter } from "./components/Counter";
import { DoubleHalf } from "./bad-components/DoubleHalf";
import { ColoredBox } from "./bad-components/ColoredBox";
import { ShoveBox } from "./bad-components/ShoveBox";
import { ChooseTeam } from "./bad-components/ChooseTeam";
import { CheckAnswer } from "./form-components/CheckAnswer";
import { GiveAttempts } from "./form-components/GiveAttempts";
import { EditMode } from "./form-components/EditMode";
import { MultipleChoiceQuestion } from "./form-components/MultipleChoiceQuestion";
import { ChangeColor } from "./form-components/ChangeColor";

function App(): React.JSX.Element {
return (
<div className="App">
<header className="App-header">
UD CISC275 with React Hooks and TypeScript
</header>
<p>
Edit <code>src/App.tsx</code> and save. This page will
automatically reload.
</p>
<hr></hr>
<CheckAnswer expectedAnswer="42"></CheckAnswer>
<hr></hr>
<GiveAttempts></GiveAttempts>
<hr></hr>
<EditMode></EditMode>
<hr></hr>
<ChangeColor></ChangeColor>
<hr></hr>
<MultipleChoiceQuestion
options={["a", "b", "c"]}
expectedAnswer="b"
></MultipleChoiceQuestion>
<hr></hr>
<DoubleHalf></DoubleHalf>
<hr></hr>
<ChooseTeam></ChooseTeam>
<hr></hr>
<ColoredBox></ColoredBox>
<hr></hr>
<ShoveBox></ShoveBox>
<hr></hr>
<Counter></Counter>
<hr />
<RevealAnswer></RevealAnswer>
<hr />
<StartAttempt></StartAttempt>
<hr />
<TwoDice></TwoDice>
<hr />
<ChangeType></ChangeType>
<hr />
<CycleHoliday></CycleHoliday>
<Container>
<Row>
<div style={{ backgroundColor: "red" }}>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<header
className="App-header"
style={{ backgroundColor: "purple" }}
>
UD CISC275 with React Hooks and TypeScript By
Valerie Owens + Hello World
</header>
</Col>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<p>
Edit <code>src/App.tsx</code> and save. This
page will automatically reload.
</p>
</Col>
</div>
</Row>
<Row>
<div>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<h1
className="App-header"
style={{ backgroundColor: "blue" }}
>
Dab on the h8rs
</h1>
</Col>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<img
src={gothfield}
alt="Garfield dressed in goth"
/>
<p>Reasons Garfield would be a bad husband:</p>
</Col>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<ul>
<li>He is a cat</li>
<li>He is lazy</li>
<li>He does not pay taxes</li>
</ul>
</Col>
<Col>
<div
style={{
width: "10px",
height: "7px",
backgroundColor: "red",
}}
></div>
<Button
onClick={() => {
console.log("Hello World!");
}}
>
Log Hello World
</Button>
</Col>
</div>
</Row>
</Container>
</div>
);
}
Expand Down
83 changes: 83 additions & 0 deletions src/HtmlCss.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import React from "react";
import { render, screen } from "@testing-library/react";
import App from "./App";
import userEvent from "@testing-library/user-event";

describe("Some HTML Elements are added.", () => {
test("(2 pts) There is a header", () => {
render(<App />);
const header = screen.getByRole("heading");
expect(header).toBeInTheDocument();
});

test("(2 pts) There is an image with alt text", () => {
render(<App />);
const image = screen.getByRole("img");
expect(image).toBeInTheDocument();
expect(image).toHaveAttribute("alt");
});

test("(2 pts) There is a list with at least three elements", () => {
render(<App />);
const list = screen.getByRole("list");
expect(list).toBeInTheDocument();
expect(list.children.length).toBeGreaterThanOrEqual(3);
});
});

describe("(2 pts) Some basic CSS is added.", () => {
test("The background color of the header area is different", () => {
render(<App />);
const banner = screen.getByRole("banner");
expect(banner).not.toHaveStyle({
"background-color": "rgb(40, 44, 52)",
});
});
});

describe("(2 pts) Some Bootstrap Elements are added", () => {
test("There is one bootstrap button with the text 'Log Hello World'", () => {
render(<App />);
const button = screen.getByRole("button", { name: /Log Hello World/i });
expect(button).toBeInTheDocument();
expect(button).toHaveClass("btn");
expect(button).toHaveClass("btn-primary");
});

test("(2 pts) Not clicking the bootstrap button does not logs 'Hello World!'", () => {
const consoleSpy = jest.spyOn(console, "log");
render(<App />);
expect(consoleSpy).not.toHaveBeenCalledWith("Hello World!");
});

test("(2 pts) Clicking the bootstrap button logs 'Hello World!'", () => {
const consoleSpy = jest.spyOn(console, "log");
render(<App />);
const button = screen.getByRole("button", { name: /Log Hello World/i });
userEvent.click(button);
expect(consoleSpy).toHaveBeenCalledWith("Hello World!");
});
});

describe("Some additional CSS was added", () => {
test("(2 pts) checks if any element has a background color of red", () => {
const { container } = render(<App />);
// Get all elements in the rendered container
const elements = container.querySelectorAll("*");

// Check if any element has a background color of red
let foundRedBackground = false;

elements.forEach((element) => {
const style = getComputedStyle(element);
if (
style.backgroundColor === "red" ||
style.backgroundColor === "rgb(255, 0, 0)"
) {
foundRedBackground = true;
}
});

expect(foundRedBackground).toBe(true);
});
});
Loading