• This repository has been archived on 30/May/2023
  • Stars
    star
    170
  • Rank 223,357 (Top 5 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Test suite for freeCodeCamp's legacy Codepen-based Curriculum

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:

More Repositories

1

freeCodeCamp

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
TypeScript
374,440
star
2

devdocs

API Documentation Browser
Ruby
32,300
star
3

how-to-contribute-to-open-source

A guide to contributing to open source
Ruby
8,733
star
4

mail-for-good

An open source email campaign management tool for nonprofits
JavaScript
3,833
star
5

guide

A collection of easy-to-understand guides to programming tools
2,130
star
6

chapter

A self-hosted event management tool for nonprofits
TypeScript
1,921
star
7

awesome-quincy-larson-emails

This repository is an archive of emails that are sent by the awesome Quincy Larson every week.
Python
1,117
star
8

LearnToCodeRPG

A visual novel video game where you learn to code and get a dev job 🎯
Ren'Py
1,048
star
9

boilerplate-npm

A boilerplate for the freeCodeCamp curriculum.
JavaScript
649
star
10

learn

freeCodeCamp's learning platform with 2,000 interactive coding challenges
JavaScript
454
star
11

mobile

freeCodeCamp's open-source mobile app made with Flutter
Dart
424
star
12

pantry-for-good

An open source food bank logistics and inventory management tool
JavaScript
381
star
13

meeting-for-good

A meeting coordination app for your team
JavaScript
338
star
14

boilerplate-infosec

A boilerplate for the freeCodeCamp curriculum.
JavaScript
331
star
15

CurriculumExpansion

JavaScript
294
star
16

wiki

freeCodeCamp's deprecated wiki articles
JavaScript
280
star
17

100DaysOfCode-twitter-bot

Twitter bot for #100DaysOfCode
JavaScript
277
star
18

Developer_Quiz_Site

This is a quiz site filled with over 1500+ questions on programming.
TypeScript
259
star
19

boilerplate-express

A boilerplate for the freeCodeCamp curriculum.
JavaScript
234
star
20

chinese

214
star
21

2016-new-coder-survey

R
196
star
22

boilerplate-mochachai

A boilerplate for the freeCodeCamp curriculum.
JavaScript
189
star
23

league-for-good

An open source sports league management tool
JavaScript
163
star
24

web3-curriculum

Half of the Web3 Curriculum
JavaScript
159
star
25

open-data

HTML
157
star
26

python-coding-challenges

freeCodeCamp's stand-alone Python coding challenges
Python
144
star
27

classroom

JavaScript
143
star
28

demo-projects

Example certification projects for our programming curriculum
JavaScript
142
star
29

coderadio-client

24/7 music designed for coding - https://coderadio.freecodecamp.org
JavaScript
136
star
30

solana-curriculum

freeCodeCamp Solana Curriculum
TypeScript
126
star
31

conference-for-good

An open source conference management tool
TypeScript
118
star
32

boilerplate-project-timestamp

A boilerplate for a freeCodeCamp project.
HTML
113
star
33

assets

A collection of https://www.freeCodeCamp.org logos and other assets
100
star
34

camper-gitter-bot

Finally, robotic beings rule the world.
JavaScript
96
star
35

open-api

freeCodeCamp's open-api Intiative
JavaScript
88
star
36

curriculum

The freeCodeCamp curriculum and lesson editor
JavaScript
81
star
37

boilerplate-mongomongoose

A boilerplate for the freeCodeCamp curriculum.
JavaScript
80
star
38

cdn

static assets for use with projects, curriculum and other places on internet
Python
76
star
39

Rust-In-Replit

The freeCodeCamp Rust In Replit course
JavaScript
71
star
40

100DaysOfCode-discord-bot

A Discord bot created for the 100 Days of Code challenge.
TypeScript
68
star
41

open-source-for-good-directory

A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits
JavaScript
65
star
42

euler-rust

Local config for running the freeCodeCamp Project Euler lessons in Rust
JavaScript
62
star
43

boilerplate-project-urlshortener

A boilerplate for a freeCodeCamp project.
HTML
61
star
44

freeCodeCampOS

Test repo for external freeCodeCamp courses
JavaScript
59
star
45

news

freeCodeCamp's JAMstack Developer News publication. Built with 11ty, Ghost, and help from kind contributors like you.
TypeScript
57
star
46

infra

> freeCodeCamp.org's infrastructure-as-code
HCL
56
star
47

2017-new-coder-survey

Open Dataset from freeCodeCamp's 2017 survey of more than 20,000 developers
R
55
star
48

boilerplate-project-exercisetracker

A boilerplate for a freeCodeCamp project.
HTML
50
star
49

courses-vscode-extension

freeCodeCamp VSCode extension to help run and develop courses
TypeScript
46
star
50

study-group-directory

CSS
45
star
51

learn-bash-by-building-a-boilerplate

Shell
42
star
52

massification

An emailing service built on Amazon SES and Node
JavaScript
42
star
53

rdb-alpha

Dockerfile
42
star
54

contribute

> docs site for all things contributions. begin your contribution journey here.
MDX
42
star
55

boilerplate-project-headerparser

A boilerplate for a freeCodeCamp project.
HTML
41
star
56

learn-relational-databases-by-building-a-mario-database

Shell
39
star
57

boilerplate-advancednode

A boilerplate for the freeCodeCamp curriculum referenced in 'Advanced Node/Express Introduction'.
JavaScript
39
star
58

videos-translation

38
star
59

boilerplate-medical-data-visualizer

Python
37
star
60

scrapepark.org

Source for scrapepark.org
HTML
36
star
61

design-style-guide

Design Style Guide
HTML
35
star
62

FreeCodeCampTriviaQuiz

Take developer quizzes using your Amazon Echo with this freeCodeCamp.org Alexa skill
JavaScript
34
star
63

boilerplate-project-stockchecker

A boilerplate for a freeCodeCamp project.
JavaScript
34
star
64

news-theme

The Ghost theme for Developer News.
Handlebars
33
star
65

math-for-programmers-prototype

An interactive browser-based curriculum where you learn math through LaTeX
JavaScript
32
star
66

learn-bash-scripting-by-building-five-programs

Shell
31
star
67

classroom-mode-archived

JavaScript
31
star
68

news-translation-tasks

JavaScript
31
star
69

boilerplate-project-filemetadata

A boilerplate for a freeCodeCamp project.
HTML
31
star
70

camperchan

Discord bot running in our freeCodeCamp Discord server
TypeScript
29
star
71

2018-new-coder-survey

The results of the 2018 New Coder Survey
R
28
star
72

2018-jamstack-hackathon

IN PERSON freeCodeCamp JAMstack Hackathon on November 3 - 4 at GitHub
28
star
73

near-curriculum

JavaScript
26
star
74

rocketchat-bot

TypeScript
26
star
75

learn-sql-by-building-a-student-database-part-1

Shell
26
star
76

PhoneIDE

PhoneIDE freeCodeCamps Mobile Editor Made with Flutter
Dart
26
star
77

multiple-choice-questions

Multiple choice questions for our interview preparation section
JavaScript
26
star
78

arcade-mode

A repo for algorithm and data structures interview practice app
JavaScript
24
star
79

boilerplate-arithmetic-formatter

Python
24
star
80

2018-online-jamstack-hackathon

freeCodeCamp JAMstack Online Hackathon November 3 - 4
23
star
81

boilerplate-budget-app

Python
23
star
82

boilerplate-project-messageboard

A boilerplate for a freeCodeCamp project.
HTML
21
star
83

boilerplate-project-issuetracker

A boilerplate for a freeCodeCamp project.
JavaScript
20
star
84

.github

> Our default community health files for all our repositories on GitHub.
20
star
85

sendgrid-email-blast

A CLI tool for sending emails via the SendGrid API.
TypeScript
20
star
86

learn-git-by-building-an-sql-reference-object

Shell
20
star
87

freecodecamp-dark-vscode-theme

19
star
88

boilerplate-project-metricimpconverter

A boilerplate for a freeCodeCamp project.
JavaScript
19
star
89

COM1000

freeCodeCamp's deprecated challenge editor
JavaScript
19
star
90

boilerplate-bcrypt

A boilerplate for the freeCodeCamp curriculum referenced in 'Data Protection with BCrypt'.
JavaScript
19
star
91

nginx-config

> Config for our NGINX instances that serve our platforms.
19
star
92

curriculum-helpers

An internal package that allows thorough testing of challenges between multiple freeCodeCamp platforms.
Python
19
star
93

JulyGameDev

Read more about this here: http://blog.freecodecamp.com/2015/07/watch-us-code-games-live-all-weekend.html
JavaScript
19
star
94

2021-new-coder-survey

The results of freeCodeCamp's 2021 New Coder Survey
18
star
95

boilerplate-demographic-data-analyzer

Python
17
star
96

boilerplate-rock-paper-scissors

Python
17
star
97

learn-bash-and-sql-by-building-a-bike-rental-shop

Shell
16
star
98

chat

freeCodeCamp.org's official community chat rooms
HTML
16
star
99

boilerplate-project-sudoku-solver

A boilerplate for a freeCodeCamp project.
JavaScript
16
star
100

search

A search engine for all things freeCodeCamp
JavaScript
15
star