Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 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
e6b1dab
Allow one or more instances of the Hello World text
acbart Feb 3, 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
017584a
Added name to App
Feb 3, 2026
086364b
Merge remote-tracking branch 'upstream/task-first-branch' into solved…
jacobdonn Feb 5, 2026
7272459
Passed all tests
jacobdonn Feb 5, 2026
a0bdce0
Merge remote-tracking branch 'upstream/task-html-css' into solved-htm…
jacobdonn Feb 10, 2026
bd6f679
Finish adding header & image
jacobdonn Feb 10, 2026
255fdc6
Finish adding (unordered) list
jacobdonn Feb 10, 2026
b20f966
Finish adding "Hello World" logger button
jacobdonn Feb 10, 2026
2720ca4
Finish all tests
jacobdonn Feb 10, 2026
515e8c6
Merge remote-tracking branch 'upstream/task-functions' into solved-fu…
jacobdonn Feb 11, 2026
e5bfcf8
Finish first func
jacobdonn Feb 11, 2026
dbf5433
Finish second func
jacobdonn Feb 11, 2026
40ad432
Finish third func
jacobdonn Feb 11, 2026
1e40289
Finish fourth func
jacobdonn Feb 11, 2026
e55ad18
Finish 5th func
jacobdonn Feb 11, 2026
6a10708
Merge remote-tracking branch 'upstream/task-arrays' into solved-arrays
jacobdonn Feb 18, 2026
0265429
Finish all array funcs
jacobdonn Feb 19, 2026
8ac3d78
Merge remote-tracking branch 'upstream/task-objects' into solved-objects
jacobdonn Feb 22, 2026
4d5511a
Finish makeBlankQuestion
jacobdonn Feb 22, 2026
b2fb1d0
Finish isCorrect()
jacobdonn Feb 22, 2026
553433f
Finish toShortForm()
jacobdonn Feb 22, 2026
917c885
Finish renameQuestion()
jacobdonn Feb 22, 2026
3dbc6f1
Finish publishQuestion()
jacobdonn Feb 22, 2026
1c80284
Finish duplicateQuestion()
jacobdonn Feb 22, 2026
d8d0975
Finish addOption()
jacobdonn Feb 22, 2026
907117c
Finish isValid()
jacobdonn Feb 22, 2026
1ba4c3a
Finish toMarkdown()
jacobdonn Feb 22, 2026
e7461ae
Finish mergeQuestion
jacobdonn Feb 22, 2026
8175ef5
Merge remote-tracking branch 'upstream/task-nested' into solved-nested
jacobdonn Feb 25, 2026
293ef5f
Finish getPublishedQuestions()
jacobdonn Feb 25, 2026
e82e13b
Finish getNonEmptyQuestions
jacobdonn Feb 25, 2026
159b7c9
Finish findQuestion()
jacobdonn Feb 25, 2026
f064245
Finish removeQuestion()
jacobdonn Feb 25, 2026
700d14d
Finish getNames()
jacobdonn Feb 25, 2026
a5db038
Finish sumPoints()
jacobdonn Feb 25, 2026
05e2a93
Finish sumPublishedPoints()
jacobdonn Feb 25, 2026
a8b1bfb
Finish makeAnswers()
jacobdonn Feb 26, 2026
2f65e82
Finish publishAll()
jacobdonn Feb 26, 2026
93cf608
Finish sameType()
jacobdonn Feb 26, 2026
8b2fdf2
Finish addNewQuestion()
jacobdonn Feb 26, 2026
4040f17
Finish renameQuestionById()
jacobdonn Feb 26, 2026
253897e
Finish changeQuestionTypeById()
jacobdonn Feb 26, 2026
cd21d81
Finish duplicateQuestionInArray()
jacobdonn Feb 27, 2026
3991aea
Finish editOption()
jacobdonn Mar 1, 2026
9a7d427
Finish toCSV()
jacobdonn Mar 1, 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
123 changes: 57 additions & 66 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-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.
4 changes: 2 additions & 2 deletions src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@

.App-header {
width: 100%;
background-color: #282c34;
background-color: rgb(255, 0, 0);
min-height: 40vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
color: rgb(255, 255, 255);
}

.App-link {
Expand Down
31 changes: 29 additions & 2 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,43 @@
import React from "react";
import "./App.css";
import budgies from "./images/budgies.jpg";
import { Button } from "react-bootstrap";

export function Header(): React.JSX.Element {
return <h1>This is my header</h1>;
}

function App(): React.JSX.Element {
return (
<div className="App">
<header className="App-header">
UD CISC275 with React Hooks and TypeScript
<header className="App-header" style={{ backgroundColor: "red" }}>
UD CISC275 with React Hooks and TypeScript. Jacob Donn. Hello
World
</header>
<p>
Edit <code>src/App.tsx</code> and save. This page will
automatically reload.
</p>

<h1>This is a header!</h1>
<img src={budgies} alt="A budgie couple" />
<div className="List">
My go-to Dominos order:
<ul>
<li>Pepperoni</li>
<li>Sausage</li>
<li>Green peppers</li>
</ul>
</div>
<div className="Button">
<Button
onClick={() => {
console.log("Hello World!");
}}
>
Log Hello World
</Button>
</div>
</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