diff --git a/client/src/__mocks__/challenge-nodes.ts b/client/src/__mocks__/challenge-nodes.ts index 7824cdb4778..6f5bf58eb26 100644 --- a/client/src/__mocks__/challenge-nodes.ts +++ b/client/src/__mocks__/challenge-nodes.ts @@ -182,6 +182,20 @@ const mockChallengeNodes: MockChallengeNodes[] = [ superBlock: 'super-block-three', dashedName: 'challenge-three' } + }, + { + challenge: { + fields: { + slug: '/super-block-four/block-a/challenge-one', + blockName: 'Block A' + }, + id: 'm', + block: 'block-a', + title: 'Challenge One', + isPrivate: false, + superBlock: 'super-block-four', + dashedName: 'challenge-one' + } } ]; diff --git a/client/src/components/Map/__snapshots__/map.test.tsx.snap b/client/src/components/Map/__snapshots__/map.test.tsx.snap index b1365622b20..078190f95fa 100644 --- a/client/src/components/Map/__snapshots__/map.test.tsx.snap +++ b/client/src/components/Map/__snapshots__/map.test.tsx.snap @@ -49,6 +49,366 @@ exports[` snapshot: Map 1`] = ` +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • +
  • + +
    + +
    + +
    +
  • snapshot: Map 1`] = `
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • -
  • - -
    - -
    - -
    -
  • i !== 0 && i !== 11) + nodes[12], + ...nodes.filter((_, i) => i !== 0 && i !== 12) ]; return ( diff --git a/client/src/resources/cert-and-project-map.ts b/client/src/resources/cert-and-project-map.ts index 5944dfe0f22..4e24655923a 100644 --- a/client/src/resources/cert-and-project-map.ts +++ b/client/src/resources/cert-and-project-map.ts @@ -447,6 +447,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', @@ -675,44 +713,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; diff --git a/curriculum/utils.js b/curriculum/utils.js index 09affac0007..be37ea8cdff 100644 --- a/curriculum/utils.js +++ b/curriculum/utils.js @@ -28,15 +28,15 @@ 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, - 'responsive-web-design': 11, - '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, + 'responsive-web-design': 12 }; /** @@ -49,15 +49,15 @@ const superBlockNonAuditedOrder = { '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, - '2022/responsive-web-design': 11, - '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, + '2022/responsive-web-design': 12 }; const superBlockToNewOrder = { diff --git a/curriculum/utils.test.ts b/curriculum/utils.test.ts index d2efa562138..1d5c3c2453d 100644 --- a/curriculum/utils.test.ts +++ b/curriculum/utils.test.ts @@ -42,15 +42,15 @@ describe('getSuperOrder', () => { ); 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('responsive-web-design')).toBe(11); - 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); + expect(getSuperOrder('responsive-web-design')).toBe(12); }); } else { it('returns unique numbers for all current superblocks (not audited beta)', () => { @@ -61,15 +61,15 @@ describe('getSuperOrder', () => { ); 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('2022/responsive-web-design')).toBe(11); - 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); + expect(getSuperOrder('2022/responsive-web-design')).toBe(12); }); } @@ -95,36 +95,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('responsive-web-design', { showNewCurriculum: true }) + getSuperOrder('coding-interview-prep', { showNewCurriculum: true }) ).toBe(11); expect( - getSuperOrder('relational-database', { showNewCurriculum: true }) + getSuperOrder('responsive-web-design', { showNewCurriculum: true }) ).toBe(12); expect( getSuperOrder('2022/javascript-algorithms-and-data-structures', { diff --git a/cypress/integration/default/landing.js b/cypress/integration/default/landing.js index e74ed7c8f7c..21f58e917a0 100644 --- a/cypress/integration/default/landing.js +++ b/cypress/integration/default/landing.js @@ -12,13 +12,13 @@ const certifications = [ 'JavaScript Algorithms and Data Structures', 'Front End Development Libraries', 'Data Visualization', + 'Relational Database (Beta)', 'Back End Development and APIs', 'Quality Assurance', 'Scientific Computing with Python', 'Data Analysis with Python', 'Information Security', - 'Machine Learning with Python', - 'Relational Database (Beta)' + 'Machine Learning with Python' ]; describe('Landing page', () => { diff --git a/cypress/integration/default/learn/index.js b/cypress/integration/default/learn/index.js index 13534bda2b3..63f0fc2c6dc 100644 --- a/cypress/integration/default/learn/index.js +++ b/cypress/integration/default/learn/index.js @@ -12,14 +12,14 @@ const superBlockNames = [ 'JavaScript Algorithms and Data Structures Certification', 'Front End Development Libraries Certification', 'Data Visualization Certification', + 'Relational Database (Beta) Certification', 'Back End Development and APIs Certification', 'Quality Assurance Certification', 'Scientific Computing with Python Certification', 'Data Analysis with Python Certification', 'Information Security Certification', 'Machine Learning with Python Certification', - 'Coding Interview Prep', - 'Relational Database (Beta) Certification' + 'Coding Interview Prep' ]; describe('Learn Landing page (not logged in)', () => {