revert: release rdbms to production (#45347)
This commit is contained in:
@ -157,8 +157,7 @@ function sendCertifiedEmail(
|
||||
isInfosecCertV7,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
isRelationalDatabaseCertV8
|
||||
isMachineLearningPyCertV7
|
||||
},
|
||||
send$
|
||||
) {
|
||||
@ -173,8 +172,7 @@ function sendCertifiedEmail(
|
||||
!isInfosecCertV7 ||
|
||||
!isSciCompPyCertV7 ||
|
||||
!isDataAnalysisPyCertV7 ||
|
||||
!isMachineLearningPyCertV7 ||
|
||||
!isRelationalDatabaseCertV8
|
||||
!isMachineLearningPyCertV7
|
||||
) {
|
||||
return Observable.just(false);
|
||||
}
|
||||
|
@ -411,7 +411,7 @@
|
||||
}
|
||||
},
|
||||
"relational-database": {
|
||||
"title": "Relational Database (Beta)",
|
||||
"title": "Relational Database",
|
||||
"intro": [
|
||||
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
|
||||
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
|
||||
@ -458,62 +458,62 @@
|
||||
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
|
||||
"intro": [
|
||||
"There's more to Bash commands than you might think.",
|
||||
"In this 140-lesson course, you will learn some more complex commands, and the details of how commands work."
|
||||
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
|
||||
]
|
||||
},
|
||||
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
|
||||
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
|
||||
"intro": [
|
||||
"In this 210-lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
|
||||
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
|
||||
]
|
||||
},
|
||||
"learn-bash-by-building-a-boilerplate": {
|
||||
"title": "Learn Bash by Building a Boilerplate",
|
||||
"intro": [
|
||||
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
|
||||
"In this 170-lesson course, you will learn terminal commands by creating a website boilerplate using only the command line."
|
||||
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
|
||||
]
|
||||
},
|
||||
"learn-bash-scripting-by-building-five-programs": {
|
||||
"title": "Learn Bash Scripting by Building Five Programs",
|
||||
"intro": [
|
||||
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
|
||||
"In this 220-lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
|
||||
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
|
||||
]
|
||||
},
|
||||
"learn-git-by-building-an-sql-reference-object": {
|
||||
"title": "Learn Git by Building an SQL Reference Object",
|
||||
"intro": [
|
||||
"Git is a version control system that keeps track of all the changes you make to your codebase.",
|
||||
"In this 240-lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
|
||||
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
|
||||
]
|
||||
},
|
||||
"learn-nano-by-building-a-castle": {
|
||||
"title": "Learn Nano by Building a Castle",
|
||||
"intro": [
|
||||
"Nano is a program that allows you to edit files right in the terminal.",
|
||||
"In this 40-lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
|
||||
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
|
||||
]
|
||||
},
|
||||
"learn-relational-databases-by-building-a-mario-database": {
|
||||
"title": "Learn Relational Databases by Building a Mario Database",
|
||||
"intro": [
|
||||
"A relational database organizes data into tables that are linked together through relationships.",
|
||||
"In this 165-lesson course, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
|
||||
"In this 165 lesson course, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
|
||||
]
|
||||
},
|
||||
"learn-sql-by-building-a-student-database-part-1": {
|
||||
"title": "Learn SQL by Building a Student Database: Part 1",
|
||||
"intro": [
|
||||
"SQL, or Structured Query Language, is the language for communicating with a relational database.",
|
||||
"In this 140-lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
|
||||
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
|
||||
]
|
||||
},
|
||||
"learn-sql-by-building-a-student-database-part-2": {
|
||||
"title": "Learn SQL by Building a Student Database: Part 2",
|
||||
"intro": [
|
||||
"SQL join commands are used to combine information from multiple tables in a relational database",
|
||||
"In this 140-lesson course, you will complete your student database while diving deeper into SQL commands."
|
||||
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -298,7 +298,7 @@
|
||||
"help-translate": "We are still translating the following certifications.",
|
||||
"help-translate-link": "Help us translate.",
|
||||
"project-preview-title": "Here's a preview of what you will build",
|
||||
"github-required": "<0>Create a GitHub</0> account if you don't have one. You'll need it when you create the virtual Linux server machine. This process may take a few minutes.",
|
||||
"github-required": "A <0>GitHub</0> account is required to run the project. You will need to create one if you haven't already.",
|
||||
"step-1": "Step 1: Complete the project",
|
||||
"step-2": "Step 2: Submit your code",
|
||||
"submit-public-url": "When you have completed the project, save all the required files into a public repository and submit the URL to it below.",
|
||||
|
@ -27,7 +27,7 @@ import {
|
||||
import { User } from '../redux/prop-types';
|
||||
import { submitNewAbout, updateUserFlag, verifyCert } from '../redux/settings';
|
||||
|
||||
const { apiLocation } = envData;
|
||||
const { apiLocation, deploymentEnv } = envData;
|
||||
|
||||
// TODO: update types for actions
|
||||
interface ShowSettingsProps {
|
||||
@ -202,8 +202,8 @@ export function ShowSettings(props: ShowSettingsProps): JSX.Element {
|
||||
username={username}
|
||||
verifyCert={verifyCert}
|
||||
/>
|
||||
<Spacer />
|
||||
<WebhookToken />
|
||||
{deploymentEnv == 'staging' && <Spacer />}
|
||||
{deploymentEnv == 'staging' && <WebhookToken />}
|
||||
<Spacer />
|
||||
<DangerZone />
|
||||
</main>
|
||||
|
@ -74,7 +74,7 @@ class WebhookToken extends Component<WebhookTokenProps, WebhookTokenState> {
|
||||
return isChallengePage ? (
|
||||
<>
|
||||
{!webhookToken && (
|
||||
<div className='alert alert-info' data-cy='webhook-challenge-page'>
|
||||
<div className='alert alert-info'>
|
||||
<p>{t('webhook-token.create-p1')}</p>
|
||||
<Spacer />
|
||||
<Button
|
||||
@ -89,10 +89,7 @@ class WebhookToken extends Component<WebhookTokenProps, WebhookTokenState> {
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<div
|
||||
className='webhook-token text-center'
|
||||
data-cy='webhook-settings-page'
|
||||
>
|
||||
<div className='webhook-token text-center'>
|
||||
<FullWidthRow>
|
||||
<Panel className='webhook-panel'>
|
||||
<Panel.Heading>{t('webhook-token.title')}</Panel.Heading>
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { SuperBlocks } from '../../../config/certification-settings';
|
||||
import envData from '../../../config/env.json';
|
||||
|
||||
const { showNewCurriculum, showUpcomingChanges } = envData;
|
||||
const { deploymentEnv, showNewCurriculum, showUpcomingChanges } = envData;
|
||||
|
||||
const responsiveWebBase =
|
||||
'/learn/responsive-web-design/responsive-web-design-projects';
|
||||
@ -455,6 +455,44 @@ const certMap = [
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '606243f50267e718b1e755f4',
|
||||
title: 'Relational Database',
|
||||
certSlug: 'relational-database-v8',
|
||||
flag: 'isRelationalDatabaseCertV8',
|
||||
projects: [
|
||||
{
|
||||
id: '5f1a4ef5d5d6b5ab580fc6ae',
|
||||
title: 'Celestial Bodies Database',
|
||||
link: `${relationalDatabaseBase}/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '5f9771307d4d22b9d2b75a94',
|
||||
title: 'World Cup Database',
|
||||
link: `${relationalDatabaseBase}/build-a-world-cup-database-project/build-a-world-cup-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '5f87ac112ae598023a42df1a',
|
||||
title: 'Salon Appointment Scheduler',
|
||||
link: `${relationalDatabaseBase}/build-a-salon-appointment-scheduler-project/build-a-salon-appointment-scheduler`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '602d9ff222201c65d2a019f2',
|
||||
title: 'Periodic Table Database',
|
||||
link: `${relationalDatabaseBase}/build-a-periodic-table-database-project/build-a-periodic-table-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '602da04c22201c65d2a019f4',
|
||||
title: 'Number Guessing Game',
|
||||
link: `${relationalDatabaseBase}/build-a-number-guessing-game-project/build-a-number-guessing-game`,
|
||||
certSlug: 'relational-database-v8'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '561add10cb82ac38a17523bc',
|
||||
title: 'Back End Development and APIs',
|
||||
@ -683,44 +721,6 @@ const certMap = [
|
||||
certSlug: 'machine-learning-with-python-v7'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '606243f50267e718b1e755f4',
|
||||
title: 'Relational Database',
|
||||
certSlug: 'relational-database-v8',
|
||||
flag: 'isRelationalDatabaseCertV8',
|
||||
projects: [
|
||||
{
|
||||
id: '5f1a4ef5d5d6b5ab580fc6ae',
|
||||
title: 'Celestial Bodies Database',
|
||||
link: `${relationalDatabaseBase}/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '5f9771307d4d22b9d2b75a94',
|
||||
title: 'World Cup Database',
|
||||
link: `${relationalDatabaseBase}/build-a-world-cup-database-project/build-a-world-cup-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '5f87ac112ae598023a42df1a',
|
||||
title: 'Salon Appointment Scheduler',
|
||||
link: `${relationalDatabaseBase}/build-a-salon-appointment-scheduler-project/build-a-salon-appointment-scheduler`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '602d9ff222201c65d2a019f2',
|
||||
title: 'Periodic Table Database',
|
||||
link: `${relationalDatabaseBase}/build-a-periodic-table-database-project/build-a-periodic-table-database`,
|
||||
certSlug: 'relational-database-v8'
|
||||
},
|
||||
{
|
||||
id: '602da04c22201c65d2a019f4',
|
||||
title: 'Number Guessing Game',
|
||||
link: `${relationalDatabaseBase}/build-a-number-guessing-game-project/build-a-number-guessing-game`,
|
||||
certSlug: 'relational-database-v8'
|
||||
}
|
||||
]
|
||||
}
|
||||
] as const;
|
||||
|
||||
@ -745,7 +745,12 @@ certMap.forEach(cert => {
|
||||
if (cert.title !== 'Legacy Full Stack') {
|
||||
if (cert.title.startsWith('Legacy')) {
|
||||
legacyProjectMap[cert.title] = cert.projects;
|
||||
} else {
|
||||
} else if (
|
||||
cert.title.startsWith('Relational') &&
|
||||
deploymentEnv == 'staging'
|
||||
) {
|
||||
projectMap[cert.title] = cert.projects;
|
||||
} else if (!cert.title.startsWith('Relational')) {
|
||||
projectMap[cert.title] = cert.projects;
|
||||
}
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ class ShowCodeAlly extends Component<ShowCodeAllyProps, ShowCodeAllyState> {
|
||||
<div className='ca-description'>
|
||||
<Trans i18nKey='learn.github-required'>
|
||||
<a
|
||||
href='https://github.com/join'
|
||||
href='https://github.com'
|
||||
rel='noopener noreferrer'
|
||||
target='_blank'
|
||||
title={t('learn.github-link')}
|
||||
|
@ -6,8 +6,7 @@ import {
|
||||
backend,
|
||||
backEndProject,
|
||||
frontEndProject,
|
||||
pythonProject,
|
||||
codeAllyCert
|
||||
pythonProject
|
||||
} from '../../../../utils/challenge-types';
|
||||
import { Form, ValidatedValues } from '../../../components/formHelpers';
|
||||
|
||||
@ -102,12 +101,6 @@ export class SolutionForm extends Component<FormProps> {
|
||||
: 'https://replit.com/@camperbot/hello');
|
||||
break;
|
||||
|
||||
case codeAllyCert:
|
||||
formFields = solutionField;
|
||||
options.isEditorLinkAllowed = true;
|
||||
solutionLink = solutionLink + 'https://your-git-repo.url/files';
|
||||
break;
|
||||
|
||||
default:
|
||||
formFields = solutionField;
|
||||
solutionLink =
|
||||
|
@ -10,7 +10,7 @@ const {
|
||||
getChallengesDirForLang
|
||||
} = require('../../curriculum/getChallenges');
|
||||
|
||||
const { curriculumLocale } = envData;
|
||||
const { curriculumLocale, deploymentEnv } = envData;
|
||||
|
||||
exports.localeChallengesRootDir = getChallengesDirForLang(curriculumLocale);
|
||||
|
||||
@ -38,6 +38,12 @@ exports.replaceChallengeNode = () => {
|
||||
|
||||
exports.buildChallenges = async function buildChallenges() {
|
||||
const curriculum = await getChallengesForLang(curriculumLocale);
|
||||
|
||||
// temp removal of rdbms from production
|
||||
if (deploymentEnv !== 'staging') {
|
||||
delete curriculum['13-relational-databases'];
|
||||
}
|
||||
|
||||
const superBlocks = Object.keys(curriculum);
|
||||
const blocks = superBlocks
|
||||
.map(superBlock => curriculum[superBlock].blocks)
|
||||
|
@ -20,7 +20,6 @@ exports.backend = backend;
|
||||
exports.frontEndProject = frontEndProject;
|
||||
exports.backEndProject = backEndProject;
|
||||
exports.pythonProject = pythonProject;
|
||||
exports.codeAllyCert = codeAllyCert;
|
||||
|
||||
exports.challengeTypes = {
|
||||
html,
|
||||
|
@ -13,11 +13,11 @@ This is one of the required projects to earn your certification. For this projec
|
||||
|
||||
# --instructions--
|
||||
|
||||
**Important:** After you pass all the project tests, save a dump of your database into a `number_guess.sql` file, as well as your whole `number_guess.sh` file, so you can complete step 2. There will be instructions how to do that within the virtual machine.
|
||||
**Important:** After you pass all the project tests, save a dump of your database into a `number_guessers.sql` file, as well as your whole `number_guessing_game` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
|
||||
|
||||
# --notes--
|
||||
|
||||
Required files: `number_guess.sql`, `number_guess.sh`
|
||||
Required files: `number_guessers.sql`, and the whole `number_guessing_game` folder
|
||||
|
||||
# --hints--
|
||||
|
||||
|
@ -13,11 +13,11 @@ This is one of the required projects to earn your certification. For this projec
|
||||
|
||||
# --instructions--
|
||||
|
||||
**Important:** After you pass all the project tests, save a dump of your database into a `periodic_table.sql` file, as well as your `element.sh` file, so you can complete step 2. There will be instructions how to do that within the virtual machine.
|
||||
**Important:** After you pass all the project tests, save a dump of your database into a `elements.sql` file, as well as your whole `periodic_table` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
|
||||
|
||||
# --notes--
|
||||
|
||||
Required files: `periodic_table.sql`, `element.sh`
|
||||
Required files: `elements.sql`, and the whole `periodic_table` folder
|
||||
|
||||
# --hints--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-kitty-ipsum-translator
|
||||
|
||||
# --description--
|
||||
|
||||
In this 140-lesson course, you will learn some more complex commands, and the details of how commands work.
|
||||
In this 140 lesson course, you will learn some more complex commands, and the details of how commands work.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-bike-rental-shop
|
||||
|
||||
# --description--
|
||||
|
||||
In this 210-lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL.
|
||||
In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-boilerplate
|
||||
|
||||
# --description--
|
||||
|
||||
In this 170-lesson course, you will learn terminal commands by creating a website boilerplate using only the command line.
|
||||
In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-five-programs
|
||||
|
||||
# --description--
|
||||
|
||||
In this 220-lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs.
|
||||
In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-an-sql-reference-object
|
||||
|
||||
# --description--
|
||||
|
||||
In this 240-lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands.
|
||||
In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-castle
|
||||
|
||||
# --description--
|
||||
|
||||
In this 40-lesson course, you will learn how to edit files in the terminal with Nano while building a castle.
|
||||
In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-mario-database
|
||||
|
||||
# --description--
|
||||
|
||||
In this 165-lesson course, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters.
|
||||
In this 165 lesson course, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-student-database-part-1
|
||||
|
||||
# --description--
|
||||
|
||||
In this 140-lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL.
|
||||
In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -9,7 +9,7 @@ dashedName: build-a-student-database-part-2
|
||||
|
||||
# --description--
|
||||
|
||||
In this 140-lesson course, you will complete your student database while diving deeper into SQL commands.
|
||||
In this 140 lesson course, you will complete your student database while diving deeper into SQL commands.
|
||||
|
||||
# --instructions--
|
||||
|
||||
|
@ -25,19 +25,19 @@ const superBlockToOrder = {
|
||||
'javascript-algorithms-and-data-structures': 1,
|
||||
'front-end-development-libraries': 2,
|
||||
'data-visualization': 3,
|
||||
'back-end-development-and-apis': 4,
|
||||
'quality-assurance': 5,
|
||||
'scientific-computing-with-python': 6,
|
||||
'data-analysis-with-python': 7,
|
||||
'information-security': 8,
|
||||
'machine-learning-with-python': 9,
|
||||
'coding-interview-prep': 10,
|
||||
'relational-database': 12
|
||||
'relational-database': 4,
|
||||
'back-end-development-and-apis': 5,
|
||||
'quality-assurance': 6,
|
||||
'scientific-computing-with-python': 7,
|
||||
'data-analysis-with-python': 8,
|
||||
'information-security': 9,
|
||||
'machine-learning-with-python': 10,
|
||||
'coding-interview-prep': 11
|
||||
};
|
||||
|
||||
const superBlockToNewOrder = {
|
||||
...superBlockToOrder,
|
||||
'2022/responsive-web-design': 11
|
||||
'2022/responsive-web-design': 12
|
||||
};
|
||||
|
||||
function getSuperOrder(
|
||||
|
@ -25,14 +25,14 @@ describe('getSuperOrder', () => {
|
||||
expect(getSuperOrder('javascript-algorithms-and-data-structures')).toBe(1);
|
||||
expect(getSuperOrder('front-end-development-libraries')).toBe(2);
|
||||
expect(getSuperOrder('data-visualization')).toBe(3);
|
||||
expect(getSuperOrder('back-end-development-and-apis')).toBe(4);
|
||||
expect(getSuperOrder('quality-assurance')).toBe(5);
|
||||
expect(getSuperOrder('scientific-computing-with-python')).toBe(6);
|
||||
expect(getSuperOrder('data-analysis-with-python')).toBe(7);
|
||||
expect(getSuperOrder('information-security')).toBe(8);
|
||||
expect(getSuperOrder('machine-learning-with-python')).toBe(9);
|
||||
expect(getSuperOrder('coding-interview-prep')).toBe(10);
|
||||
expect(getSuperOrder('relational-database')).toBe(12);
|
||||
expect(getSuperOrder('relational-database')).toBe(4);
|
||||
expect(getSuperOrder('back-end-development-and-apis')).toBe(5);
|
||||
expect(getSuperOrder('quality-assurance')).toBe(6);
|
||||
expect(getSuperOrder('scientific-computing-with-python')).toBe(7);
|
||||
expect(getSuperOrder('data-analysis-with-python')).toBe(8);
|
||||
expect(getSuperOrder('information-security')).toBe(9);
|
||||
expect(getSuperOrder('machine-learning-with-python')).toBe(10);
|
||||
expect(getSuperOrder('coding-interview-prep')).toBe(11);
|
||||
});
|
||||
|
||||
it('returns a different order if passed the option showNewCurriculum: true', () => {
|
||||
@ -53,36 +53,36 @@ describe('getSuperOrder', () => {
|
||||
expect(
|
||||
getSuperOrder('data-visualization', { showNewCurriculum: true })
|
||||
).toBe(3);
|
||||
expect(
|
||||
getSuperOrder('relational-database', { showNewCurriculum: true })
|
||||
).toBe(4);
|
||||
expect(
|
||||
getSuperOrder('back-end-development-and-apis', {
|
||||
showNewCurriculum: true
|
||||
})
|
||||
).toBe(4);
|
||||
).toBe(5);
|
||||
expect(
|
||||
getSuperOrder('quality-assurance', { showNewCurriculum: true })
|
||||
).toBe(5);
|
||||
).toBe(6);
|
||||
expect(
|
||||
getSuperOrder('scientific-computing-with-python', {
|
||||
showNewCurriculum: true
|
||||
})
|
||||
).toBe(6);
|
||||
expect(
|
||||
getSuperOrder('data-analysis-with-python', { showNewCurriculum: true })
|
||||
).toBe(7);
|
||||
expect(
|
||||
getSuperOrder('information-security', { showNewCurriculum: true })
|
||||
getSuperOrder('data-analysis-with-python', { showNewCurriculum: true })
|
||||
).toBe(8);
|
||||
expect(
|
||||
getSuperOrder('machine-learning-with-python', { showNewCurriculum: true })
|
||||
getSuperOrder('information-security', { showNewCurriculum: true })
|
||||
).toBe(9);
|
||||
expect(
|
||||
getSuperOrder('coding-interview-prep', { showNewCurriculum: true })
|
||||
getSuperOrder('machine-learning-with-python', { showNewCurriculum: true })
|
||||
).toBe(10);
|
||||
expect(
|
||||
getSuperOrder('2022/responsive-web-design', { showNewCurriculum: true })
|
||||
getSuperOrder('coding-interview-prep', { showNewCurriculum: true })
|
||||
).toBe(11);
|
||||
expect(
|
||||
getSuperOrder('relational-database', { showNewCurriculum: true })
|
||||
getSuperOrder('2022/responsive-web-design', { showNewCurriculum: true })
|
||||
).toBe(12);
|
||||
});
|
||||
});
|
||||
|
@ -17,8 +17,7 @@ const certifications = [
|
||||
'Data Analysis with Python',
|
||||
'Information Security',
|
||||
'Machine Learning with Python',
|
||||
'Responsive Web Design (Beta)',
|
||||
'Relational Database (Beta)'
|
||||
'Responsive Web Design (Beta)'
|
||||
];
|
||||
|
||||
describe('Landing page', () => {
|
||||
|
@ -1,35 +0,0 @@
|
||||
describe('CodeAlly cert challenge', function () {
|
||||
describe('before completing the project', function () {
|
||||
before(() => {
|
||||
cy.exec('npm run seed');
|
||||
cy.login();
|
||||
cy.visit(
|
||||
'/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database'
|
||||
);
|
||||
});
|
||||
|
||||
it('should not allow you to submit a URL', function () {
|
||||
cy.get('input[name="solution"]')
|
||||
.type('https://example.com')
|
||||
.type('{enter}');
|
||||
cy.contains('You must complete the project first.');
|
||||
});
|
||||
});
|
||||
|
||||
describe('after completing the project', function () {
|
||||
before(() => {
|
||||
cy.exec('npm run seed:certified-user');
|
||||
cy.login();
|
||||
cy.visit(
|
||||
'/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database'
|
||||
);
|
||||
});
|
||||
|
||||
it('should allow you to submit a URL', function () {
|
||||
cy.get('input[name="solution"]')
|
||||
.type('https://example.com')
|
||||
.type('{enter}');
|
||||
cy.get('.completion-modal-body').should('exist');
|
||||
});
|
||||
});
|
||||
});
|
@ -1,58 +0,0 @@
|
||||
describe('Webhook token component', function () {
|
||||
describe('while signed out', function () {
|
||||
describe('on CodeAlly project page', function () {
|
||||
before(() => {
|
||||
cy.exec('npm run seed');
|
||||
cy.visit(
|
||||
'/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database'
|
||||
);
|
||||
});
|
||||
|
||||
it('should not render', function () {
|
||||
cy.get('[data-cy=webhook-challenge-page]').should('not.exist');
|
||||
cy.get('.webhook-token').should('not.exist');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('while signed in', function () {
|
||||
describe('on CodeAlly project page', function () {
|
||||
beforeEach(() => {
|
||||
cy.exec('npm run seed');
|
||||
cy.login();
|
||||
cy.visit(
|
||||
'/learn/relational-database/build-a-celestial-bodies-database-project/build-a-celestial-bodies-database'
|
||||
);
|
||||
});
|
||||
|
||||
it('should render', function () {
|
||||
cy.get('[data-cy=webhook-challenge-page]').should('exist');
|
||||
});
|
||||
|
||||
it('should allow you to create a token', function () {
|
||||
cy.contains('Create a new token').click();
|
||||
cy.contains('You have successfully created a new token.');
|
||||
});
|
||||
});
|
||||
|
||||
describe('on settings page', function () {
|
||||
beforeEach(() => {
|
||||
cy.exec('npm run seed');
|
||||
cy.login();
|
||||
cy.visit('/settings');
|
||||
});
|
||||
|
||||
it('should render', function () {
|
||||
cy.get('[data-cy=webhook-settings-page]').should('exist');
|
||||
});
|
||||
|
||||
it('should allow you to create and delete a token', function () {
|
||||
cy.contains('Create a new token').click();
|
||||
cy.contains('You have successfully created a new token.');
|
||||
cy.contains('Delete my token').click();
|
||||
cy.contains('Yes please, I would like to delete my token').click();
|
||||
cy.contains('Your token has been deleted');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
@ -11,6 +11,7 @@ const superBlockNames = [
|
||||
'JavaScript Algorithms and Data Structures Certification',
|
||||
'Front End Development Libraries Certification',
|
||||
'Data Visualization Certification',
|
||||
'Relational Database Certification',
|
||||
'Back End Development and APIs Certification',
|
||||
'Quality Assurance Certification',
|
||||
'Scientific Computing with Python Certification',
|
||||
@ -18,8 +19,7 @@ const superBlockNames = [
|
||||
'Information Security Certification',
|
||||
'Machine Learning with Python Certification',
|
||||
'Coding Interview Prep (Thousands of hours of challenges)',
|
||||
'Responsive Web Design (Beta) Certification',
|
||||
'Relational Database (Beta) Certification'
|
||||
'Responsive Web Design (Beta) Certification'
|
||||
];
|
||||
|
||||
describe('Learn Landing page (not logged in)', () => {
|
||||
|
@ -153,20 +153,7 @@ MongoClient.connect(MONGOHQ_URL, { useNewUrlParser: true }, (err, client) => {
|
||||
const db = client.db('freecodecamp');
|
||||
const user = db.collection('user');
|
||||
|
||||
const dropWebhookTokens = async function () {
|
||||
await db.collection('WebhookToken').deleteMany({
|
||||
userId: {
|
||||
$in: [
|
||||
ObjectId('5fa2db00a25c1c1fa49ce067'),
|
||||
ObjectId('5bd30e0f1caf6ac3ddddddb5'),
|
||||
ObjectId('5bd30e0f1caf6ac3ddddddb9')
|
||||
]
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
if (process.argv[2] === 'certUser') {
|
||||
dropWebhookTokens();
|
||||
user.deleteMany(
|
||||
{
|
||||
_id: {
|
||||
@ -192,7 +179,6 @@ MongoClient.connect(MONGOHQ_URL, { useNewUrlParser: true }, (err, client) => {
|
||||
}
|
||||
);
|
||||
} else {
|
||||
dropWebhookTokens();
|
||||
user.deleteMany(
|
||||
{
|
||||
_id: {
|
||||
|
Reference in New Issue
Block a user