Giter Club home page Giter Club logo

fcc-react-tests-module's Introduction

freeCodeCamp React/Redux Challenge Development

This repository contains the code for the Alpha version of the freeCodeCamp React/Redux Curriculum Expansion.

Overview:

  • 50 React Challenges
  • 18 Redux Challenges
  • 10 React-Redux Challenges

The now live Beta Version of freeCodeCamp's expanded curriculum redirects campers to a separate host site for these React challenges, while we work on merging them into the FCC platform. Eventually, the goal is for all of these challenges to be moved directly into the freeCodeCamp codebase.

Currently, we have finished the initial QA and review of all of these challenges and are quite happy with them. There is still a possibility that there are bugs or typos we have not found yet. If you find something you think needs to be fixed, or have a suggestion for any of the challenges, please open an Issue here first so we can discuss it.


Curriculum Map:

  • โœ… Challenge is fully QA'd and ready to ship
  • ๐Ÿ“˜ Challenge has been reviewed and is ready for QA

React Challenges:

  • Introducing JSX Elements

    • โœ… ๐Ÿ“˜ 1: Create a Simple JSX element
    • โœ… ๐Ÿ“˜ 2: Create a Complex JSX Element
    • โœ… ๐Ÿ“˜ 3: Add Comments in JSX (may need to revise test for comment)
    • โœ… ๐Ÿ“˜ 4: Render HTML Elements to the DOM
    • โœ… ๐Ÿ“˜ 5: Define an HTML Class in JSX
    • โœ… ๐Ÿ“˜ 6: Learn About Self-Closing JSX Tags
  • Introducing React/Components

    • โœ… ๐Ÿ“˜ 7: Create a Stateless Functional Component (introduce ES6 arrow syntax here?)
    • โœ… ๐Ÿ“˜ 8: Create a Component with React
    • โœ… ๐Ÿ“˜ 9: Create a Component with Composition
    • โœ… ๐Ÿ“˜ 10: Use React to Render Nested Components
    • โœ… ๐Ÿ“˜ 11: Compose React Components
    • โœ… ๐Ÿ“˜ 12: Render a Class Component to the DOM
    • โœ… ๐Ÿ“˜ 13: Write a React Component from Scratch
  • Props

    • โœ… ๐Ÿ“˜ 14: Pass a String to a Functional Component
    • โœ… ๐Ÿ“˜ 15: Pass an Array as Props
    • โœ… ๐Ÿ“˜ 16: Use Default Props
    • โœ… ๐Ÿ“˜ 17: Override Default Props (cannot check defaultProps on child)
    • โœ… ๐Ÿ“˜ 18: Use PropTypes to Define the Props You Expect (regex .includes test for propTypes)
    • โœ… ๐Ÿ“˜ 19: Access Props Using this.props
    • โœ… ๐Ÿ“˜ 20: Using Props with Stateless Functional Components (regex .includes test for propTypes)
  • State

    • โœ… ๐Ÿ“˜ 21: Create a Stateful Component
    • โœ… ๐Ÿ“˜ 22: Render State in the UI
    • โœ… ๐Ÿ“˜ 23: Render State in the UI Another Way
    • โœ… ๐Ÿ“˜ 24: Set State with this.setState
    • โœ… ๐Ÿ“˜ 25: Bind 'this' to a Class Method
    • โœ… ๐Ÿ“˜ 26: Bind 'this' with an ES6 Arrow Function
    • โœ… ๐Ÿ“˜ 27: Use State to Toggle an Element
    • โœ… ๐Ÿ“˜ 28: Write a Simple Counter
    • โœ… ๐Ÿ“˜ 29: Create a Controlled Input
    • โœ… ๐Ÿ“˜ 30: Create a Controlled Form
    • โœ… ๐Ÿ“˜ 31: Pass State as Props to Child Components
    • โœ… ๐Ÿ“˜ 32: Pass a Callback as Props
  • Component Lifecycle

    • โœ… ๐Ÿ“˜ 33: Use the Lifecycle Method componentWillMount
    • โœ… ๐Ÿ“˜ 34: Use the Lifecycle Method componentDidMount
    • โœ… ๐Ÿ“˜ 35: Add Event Listeners is the explanation correct?
    • โœ… ๐Ÿ“˜ 36: Manage Updates with Lifecycle Methods
    • โœ… ๐Ÿ“˜ 37: Optimize Re-Renders with shouldComponentUpdate
  • Advanced Rendering

    • โœ… ๐Ÿ“˜ 38: Introducing Inline Styles
    • โœ… ๐Ÿ“˜ 39: Add Inline Styles in React
    • โœ… ๐Ÿ“˜ 40: Use Advanced JavaScript in React Render Method
    • โœ… ๐Ÿ“˜ 41: Render with an If/Else Condition
    • โœ… ๐Ÿ“˜ 42: Use && for a More Concise Conditional
    • โœ… ๐Ÿ“˜ 43: Return null to Prevent Rendering
    • โœ… ๐Ÿ“˜ 44: Use a Ternary Expression for Conditional Rendering
    • โœ… ๐Ÿ“˜ 45: Render Conditionally from Props
    • โœ… ๐Ÿ“˜ 46: Change Inline CSS Conditionally Based on Component State
    • โœ… ๐Ÿ“˜ 47: Use Array.map() to Dynamically Render Elements
    • โœ… ๐Ÿ“˜ 48: Give Sibling Elements a Unique Key Attribute
    • โœ… ๐Ÿ“˜ 49: Use Array.filter() to Dynamically Filter an Array
    • โœ… ๐Ÿ“˜ 50: Render React on the Server with renderToString

Redux Challenges:

  • Basic Redux: Store, Actions, & Reducers

    • โœ… ๐Ÿ“˜ 1: Create a Redux Store
    • โœ… ๐Ÿ“˜ 2: Get the State of the Redux Store
    • โœ… ๐Ÿ“˜ 3: Define a Redux Action
    • โœ… ๐Ÿ“˜ 4: Define an Action Creator
    • โœ… ๐Ÿ“˜ 5: Dispatch an Action Event
    • โœ… ๐Ÿ“˜ 6: Handle an Action in the Store
    • โœ… ๐Ÿ“˜ 7: Use a Switch Statement to Handle Multiple Actions
    • โœ… ๐Ÿ“˜ 8: Use const for Action Types
    • โœ… ๐Ÿ“˜ 9: Register a Store Listener
    • โœ… ๐Ÿ“˜ 10: Combine Multiple Reducers
    • โœ… ๐Ÿ“˜ 11: Send Action Data to the Store
    • โœ… ๐Ÿ“˜ 12: Use Middleware to Handle Asynchronous Actions (Async testing... hacked with regex of course)
    • โœ… ๐Ÿ“˜ 13: Write a Counter with Redux
  • Enforcing State Immutability

    • โœ… ๐Ÿ“˜ 14: Never Mutate State
    • โœ… ๐Ÿ“˜ 15: Use the Spread Operator on Arrays
    • โœ… ๐Ÿ“˜ 16: Remove an Item from an Array
    • โœ… ๐Ÿ“˜ 17: Copy an Object with Object.assign
    • โœ… ๐Ÿ“˜ 18: Use the ES6 Spread Operator with Objects

React-Redux Challenges:

  • Use react-redux to Manage a List of Messages

    • โœ… ๐Ÿ“˜ 1: Getting Started with React Redux
    • โœ… ๐Ÿ“˜ 2: Manage State Locally First
    • โœ… ๐Ÿ“˜ 3: Extract State Logic to Redux
    • โœ… ๐Ÿ“˜ 4: Use Provider to Connect Redux to React
    • โœ… ๐Ÿ“˜ 5: Map State to Props
    • โœ… ๐Ÿ“˜ 6: Map Dispatch to Props
    • โœ… ๐Ÿ“˜ 7: Connect Redux to React
    • โœ… ๐Ÿ“˜ 8: Connect Redux to the Messages App
    • โœ… ๐Ÿ“˜ 9: Extract Local State into Redux
    • โœ… ๐Ÿ“˜ 10: Moving Forward From Here

To run this project locally, clone the repository, install the dependencies, and run npm start. Now you can view all the finished challenges live in the browser.

This project is running tests against React components, ES6 code, and plain JavaScript which users write directly into an in-browser code editor. To accomplish this we are using the Babel standalone package to transpile JavaScript and the testing library Enzyme to conduct tests. At a basic level the tests we're writing for React components generally look like this:

assert.strictEqual(shallowRender.type(), 'div', 'The component renders a div element');

This project was bootstrapped with Create React App.


fcc-react-tests-module's People

Contributors

benschac avatar bonham000 avatar codefay avatar coreywhite avatar dgrcode avatar dhcodes avatar ethanrose avatar florinpop17 avatar hkuz avatar jboxman avatar lynxlynxlynx avatar marigerr avatar miloath avatar no-stack-dub-sack avatar planigan avatar tankerxyz avatar tdulka avatar tommygebru avatar tuxitop avatar u-rogel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.