Giter Site home page Giter Site logo

mar-bl00p / testable-projects-fcc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freecodecamp/testable-projects-fcc

0.0 0.0 0.0 4.79 MB

testable projects for freecodecamp.org curriculum expansion

License: BSD 3-Clause "New" or "Revised" License

JavaScript 72.90% HTML 12.73% CSS 9.79% Shell 0.34% SCSS 3.96% Sass 0.18% Pug 0.09%

testable-projects-fcc's Introduction

testable-projects-fcc

A CDN loaded test-suite for testing the freecodecamp.com Certification waypoint projects. image

image

What is this, you ask?

  • This repo is a part of the FreeCodeCamp.com curriculum expansion, and represents our front end testable projects, err... project.
  • Our goal is to make every waypoint project, which each correspond to different sections of the curriculum, fully testable using a TDD-like methodology - such that our campers will have predefined test cases, which start out failing, and that they must make pass.
  • This codebase is the test suite, and individual sets of test cases for each of these projects.
  • We are serving the tests via CDN (see below), which can easily be imported into any of our projects, whether they are developed locally, on CodePen (as our example projects are), or anywhere else.
  • You can see examples of these projects here: http://codepen.io/collection/npZPmR

Bundle CDN

https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js

Testing this project

Warning that this gets a little meta. This project provides a feature that will test camper project code.

As such, this project should be seen as more of a feature, than as automated testing. The feature mostly includes automated testing for the students to run, but it does have a UI, and the tests do not run against our code.

So how do we make sure this feature, used by millions of campers, actually works in production? The confusing answer is that we need to test this feature, which means testing the Camper tests.

We do this by running the Camper project tests (everything in the src directory) over the example projects. Since the example projects are supposed to be working examples, if the tests do not pass for the example projects, we need to either fix the tests, or fix the example project that fails.

In most projects you wouldn't test the tests, but in this case, the CodePen Camper Project Tests are a production feature potentially used by millions of campers, so it is important we don't break that feature.

This is important to understand so I'll repeat it in different words: the tests in the src directory of this project are not typical tests used to check our own code before deploying. Quite the opposite, they are a production feature that is used by students in a live setting to check their own code. As such, it is very important that we don't break those tests.

In order to keep things from being confusing, we refer to everything in the src directory as the "CodePen Project Tests" or the "Camper Project Tests" or "Testable Projects Tests". Those tests are the feature we are shipping.

Opposite of the above, all of the code that lives in the test directory is the typical tests used to check our own code before deploying. We simply call this code the "automated testing". It tests the feature we are shipping.

The automated testing can (and should) be performed locally by you before creating a PR. The tests also run automatically on Travis CI every time you create a PR. A PR that has not passed the Travis CI tests should not be merged.

For all the details about automatically testing this project, please see the CONTRIBUTING guide.

Credits

This repo did not originally live here. There are several important contributors who contributed code before this project took its current form. So credit where credit is due, to those contributors, and to the other key contributors for this project:

testable-projects-fcc's People

Contributors

no-stack-dub-sack avatar tchaffee avatar valeras avatar renovate-bot avatar lasjorg avatar raisedadead avatar bonham000 avatar christian-paul avatar scissorsneedfoodtoo avatar mot01 avatar jnmorse avatar thecodingaviator avatar marigerr avatar randelldawson avatar renovate[bot] avatar aaronrhodebeck avatar subhrajyotisen avatar bouncey avatar hkuz avatar christianmschmidt avatar abhishekakade avatar christophherr avatar wofwca avatar sidram05 avatar rshalman avatar rock-son avatar robertgz avatar rgd-consulting avatar quincylarson avatar manasmahanand 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.