• This repository has been archived on 30/May/2023
  • Stars
    star
    170
  • Rank 215,162 (Top 5 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated 11 months 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,503
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,917
star
7

LearnToCodeRPG

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

boilerplate-npm

A boilerplate for the freeCodeCamp curriculum.
JavaScript
564
star
9

learn

freeCodeCamp's learning platform with 2,000 interactive coding challenges
JavaScript
436
star
10

mobile

freeCodeCamp's open-source mobile app made with Flutter
Dart
383
star
11

pantry-for-good

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

meeting-for-good

A meeting coordination app for your team
JavaScript
338
star
13

CurriculumExpansion

JavaScript
294
star
14

boilerplate-infosec

A boilerplate for the freeCodeCamp curriculum.
JavaScript
290
star
15

wiki

freeCodeCamp's deprecated wiki articles
JavaScript
280
star
16

100DaysOfCode-twitter-bot

Twitter bot for #100DaysOfCode
JavaScript
277
star
17

Developer_Quiz_Site

This is a quiz site filled with over 1200+ questions on programming.
TypeScript
218
star
18

boilerplate-express

A boilerplate for the freeCodeCamp curriculum.
JavaScript
206
star
19

2016-new-coder-survey

R
194
star
20

chinese

Shell
190
star
21

boilerplate-mochachai

A boilerplate for the freeCodeCamp curriculum.
JavaScript
169
star
22

league-for-good

An open source sports league management tool
JavaScript
162
star
23

open-data

HTML
152
star
24

classroom

JavaScript
144
star
25

python-coding-challenges

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

web3-curriculum

Half of the Web3 Curriculum
JavaScript
142
star
27

demo-projects

Example certification projects for our programming curriculum
JavaScript
130
star
28

coderadio-client

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

conference-for-good

An open source conference management tool
TypeScript
118
star
30

assets

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

boilerplate-project-timestamp

A boilerplate for a freeCodeCamp project.
JavaScript
98
star
32

solana-curriculum

freeCodeCamp Solana Curriculum
TypeScript
95
star
33

camper-gitter-bot

Finally, robotic beings rule the world.
JavaScript
94
star
34

open-api

freeCodeCamp's open-api Intiative
JavaScript
88
star
35

curriculum

The freeCodeCamp curriculum and lesson editor
JavaScript
84
star
36

boilerplate-mongomongoose

A boilerplate for the freeCodeCamp curriculum.
JavaScript
73
star
37

cdn

static assets for use with projects, curriculum and other places on internet
Python
69
star
38

100DaysOfCode-discord-bot

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

open-source-for-good-directory

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

Rust-In-Replit

The freeCodeCamp Rust In Replit course
JavaScript
64
star
41

euler-rust

Local config for running the freeCodeCamp Project Euler lessons in Rust
JavaScript
61
star
42

2017-new-coder-survey

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

freeCodeCampOS

Test repo for external freeCodeCamp courses
JavaScript
54
star
44

boilerplate-project-urlshortener

A boilerplate for a freeCodeCamp project.
JavaScript
52
star
45

news

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

infra

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

study-group-directory

CSS
45
star
48

courses-vscode-extension

freeCodeCamp VSCode extension to help run and develop courses
TypeScript
44
star
49

massification

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

boilerplate-project-exercisetracker

A boilerplate for a freeCodeCamp project.
JavaScript
39
star
51

videos-translation

39
star
52

boilerplate-advancednode

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

boilerplate-project-headerparser

A boilerplate for a freeCodeCamp project.
JavaScript
37
star
54

scrapepark.org

Source for scrapepark.org
HTML
36
star
55

news-theme

The Ghost theme for Developer News.
Handlebars
35
star
56

design-style-guide

Design Style Guide
HTML
35
star
57

rdb-alpha

Dockerfile
34
star
58

FreeCodeCampTriviaQuiz

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

math-for-programmers-prototype

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

classroom-mode-archived

JavaScript
31
star
61

boilerplate-medical-data-visualizer

Python
31
star
62

discord-bot

a discord bot playground
TypeScript
29
star
63

boilerplate-project-filemetadata

A boilerplate for a freeCodeCamp project.
JavaScript
29
star
64

2018-new-coder-survey

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

2018-jamstack-hackathon

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

boilerplate-project-stockchecker

A boilerplate for a freeCodeCamp project.
JavaScript
27
star
67

multiple-choice-questions

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

near-curriculum

JavaScript
25
star
69

rocketchat-bot

TypeScript
25
star
70

arcade-mode

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

2018-online-jamstack-hackathon

freeCodeCamp JAMstack Online Hackathon November 3 - 4
23
star
72

boilerplate-arithmetic-formatter

Python
23
star
73

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

22
star
74

learn-bash-by-building-a-boilerplate

22
star
75

boilerplate-budget-app

Python
22
star
76

boilerplate-project-messageboard

A boilerplate for a freeCodeCamp project.
JavaScript
21
star
77

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

21
star
78

PhoneIDE

PhoneIDE freeCodeCamps Mobile Editor Made with Flutter
Dart
21
star
79

boilerplate-project-issuetracker

A boilerplate for a freeCodeCamp project.
JavaScript
20
star
80

sendgrid-email-blast

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

nginx-config

> Config for our NGINX instances that serve our platforms.
20
star
82

COM1000

freeCodeCamp's deprecated challenge editor
JavaScript
19
star
83

JulyGameDev

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

freecodecamp-dark-vscode-theme

18
star
85

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

17
star
86

.github

> Our default community health files for all our repositories on GitHub.
17
star
87

2021-new-coder-survey

The results of freeCodeCamp's 2021 New Coder Survey
17
star
88

boilerplate-project-sudoku-solver

A boilerplate for a freeCodeCamp project.
JavaScript
17
star
89

boilerplate-project-metricimpconverter

A boilerplate for a freeCodeCamp project.
JavaScript
16
star
90

chat

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

search

A search engine for all things freeCodeCamp
JavaScript
15
star
92

terraform-github-runners

Our Terraform module to provision GitHub self-hosted runners on AWS.
HCL
15
star
93

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

15
star
94

boilerplate-bcrypt

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

boilerplate-project-library

A boilerplate for a freeCodeCamp project.
JavaScript
15
star
96

forum-theme

Themes that we use on our forums
SCSS
14
star
97

wiki-generator

freeCodeCamp's deprecated generator for our live wiki
JavaScript
14
star
98

scripts

Quick one-off scripts and tasks
TypeScript
14
star
99

events

local study groups and events
CSS
14
star
100

persist

Student Alumni tracker. An Open Source for Good initiative.
JavaScript
14
star