Skip to content

Solved nested #67

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 113 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 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
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
05ef1d4
Added name to App
ethanCypher Aug 28, 2024
e4787a3
Merge remote-tracking branch 'upstream/task-first-branch' into solved…
ethanCypher Aug 30, 2024
eda6830
added hello world
ethanCypher Aug 30, 2024
cbb2785
Merge remote-tracking branch 'upstream/task-html-css' into solved-htm…
ethanCypher Sep 6, 2024
090c5d7
Completed Task 3 changes
ethanCypher Sep 6, 2024
fa0fb30
Merge remote-tracking branch 'upstream/task-functions' into solved-fu…
ethanCypher Sep 10, 2024
ddb41dd
Completed fahrenheitToCelsius function.
ethanCypher Sep 10, 2024
ea24b85
Completed add3 function.
ethanCypher Sep 10, 2024
a04edd1
Completed shout function.
ethanCypher Sep 10, 2024
4d7f101
Completed isQuestion function
ethanCypher Sep 10, 2024
1fa209b
Completed all functions
ethanCypher Sep 10, 2024
f9a2af4
Merge remote-tracking branch 'upstream/task-arrays' into solved-arrays
ethanCypher Sep 12, 2024
21b8c70
Compelted bookEndList function.
ethanCypher Sep 12, 2024
b1d97f8
Completed tripleNumbers function.
ethanCypher Sep 12, 2024
5075cd4
Completed stringsToIntegers function.
ethanCypher Sep 12, 2024
84c7c44
Completed removeDollars function.
ethanCypher Sep 12, 2024
c4eabfb
Completed shoutIfExclaiming function.
ethanCypher Sep 12, 2024
be25c45
Completed countShortWords function.
ethanCypher Sep 12, 2024
1f276bf
Completed allRGB function.
ethanCypher Sep 12, 2024
32c5d0c
Completed makeMath function.
ethanCypher Sep 12, 2024
db9a078
Still having problems with last function but oh well.
ethanCypher Sep 14, 2024
8e02189
Merge remote-tracking branch 'upstream/task-objects' into solved-objects
ethanCypher Sep 16, 2024
829847d
Finally finished injectPositive function in arrays.ts
ethanCypher Sep 17, 2024
6360787
Completed makeBlankQuestion and isCorrect functions.
ethanCypher Sep 17, 2024
5be03d2
Completed isValid function. Had me fed up for a lil.
ethanCypher Sep 17, 2024
6c8f9b9
Completed toShortForm function. Not too bad.
ethanCypher Sep 17, 2024
4163e06
Completed toMarkdown function.
ethanCypher Sep 17, 2024
639382e
Completed renameQuestion function. Probably doesn't get easier
ethanCypher Sep 17, 2024
993a865
Completed publishQuestion function. Also pretty easy.
ethanCypher Sep 17, 2024
4790996
Completed duplicateQuestion function. id parameter was throwing
ethanCypher Sep 17, 2024
f97cefc
Completed addOption function. Not sure why the last functions
ethanCypher Sep 17, 2024
0692f8e
All done.
ethanCypher Sep 17, 2024
a326338
Resolve merge conflict by incorporating both suggestions
ethanCypher Sep 19, 2024
2862c5b
Completed getPublishedQuestions function.
ethanCypher Sep 19, 2024
c26395b
Completed getNonEmptyQuestions function. Did not like the
ethanCypher Sep 19, 2024
d9c6bb6
Completed findQuestion function/
ethanCypher Sep 19, 2024
aacdd92
Completed removeQuestion function.
ethanCypher Sep 19, 2024
49d3711
Completed getNames function.
ethanCypher Sep 19, 2024
f6c0a38
Completed sumPoints function.
ethanCypher Sep 19, 2024
0efb1a0
Completed sumPublishedPoints function. Thought it was asking for
ethanCypher Sep 19, 2024
98500ee
Completed toCSV function.
ethanCypher Sep 19, 2024
d2b0131
Completed makeAnswers function
ethanCypher Sep 19, 2024
ed9f4d5
Completed publishAll function
ethanCypher Sep 19, 2024
e68a484
Completed sameType function.
ethanCypher Sep 19, 2024
c4630a2
Completed addNewQuestion function.
ethanCypher Sep 19, 2024
b790414
Completed renameQuestionById function.
ethanCypher Sep 19, 2024
06e087e
Completed changeQuestionTypeById function. Come on man that's
ethanCypher Sep 19, 2024
bcc48dd
Completed editOption function.
ethanCypher Sep 19, 2024
9eec058
Idek.
ethanCypher Sep 19, 2024
d7acb92
fixed injectpositive hopefully.
ethanCypher Sep 20, 2024
47e553a
Merge remote-tracking branch 'upstream/task-state' into solved-nested
ethanCypher Sep 24, 2024
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
50 changes: 50 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"settings": {
"react": {
"version": "detect"
}
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": ["react", "@typescript-eslint", "prettier"],
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"no-extra-parens": [
"warn",
"all",
{
"nestedBinaryExpressions": false,
"returnAssign": false,
"enforceForArrowConditionals": false,
"ignoreJSX": "all"
}
],
"brace-style": ["error", "1tbs"],
"indent": ["error", 4],
"quotes": ["error", "double"],
"semi": ["error", "always"]
}
}
Empty file added git
Empty file.
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.
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.
2 changes: 1 addition & 1 deletion src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

.App-header {
width: 100%;
background-color: #282c34;
background-color: #7f0bad;
min-height: 40vh;
display: flex;
flex-direction: column;
Expand Down
26 changes: 19 additions & 7 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
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";

function App(): React.JSX.Element {
function App(): 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>
<Counter></Counter>
<hr />
<RevealAnswer></RevealAnswer>
<hr />
<StartAttempt></StartAttempt>
<hr />
<TwoDice></TwoDice>
<hr />
<ChangeType></ChangeType>
<hr />
<CycleHoliday></CycleHoliday>
</div>
);
}

export default App;
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