feat: release a2-english exam (#63136)

This commit is contained in:
Shaun Hamilton
2025-11-11 04:20:03 +02:00
committed by GitHub
parent c722fcdd9d
commit 6fe97d3105
8 changed files with 80 additions and 29 deletions

View File

@@ -38,6 +38,7 @@ describe('certificate routes', () => {
data: {
completedChallenges: [],
name: 'fcc',
isA2EnglishCert: false,
isRespWebDesignCert: false,
isJsAlgoDataStructCert: false,
isFrontEndLibsCert: false,
@@ -135,6 +136,7 @@ describe('certificate routes', () => {
},
isCertMap: {
is2018DataVisCert: false,
isA2EnglishCert: false,
isApisMicroservicesCert: false,
isBackEndCert: false,
isCollegeAlgebraPyCertV8: false,
@@ -238,7 +240,8 @@ describe('certificate routes', () => {
isInfosecCertV7: true,
isMachineLearningPyCertV7: true,
isCollegeAlgebraPyCertV8: true,
isFoundationalCSharpCertV8: true
isFoundationalCSharpCertV8: true,
isA2EnglishCert: true
}
});

View File

@@ -1394,7 +1394,7 @@
}
},
"a2-english-for-developers": {
"title": "A2 English for Developers (Beta) Certification",
"title": "A2 English for Developers Certification",
"intro": [
"In this English for Developers Curriculum, you'll learn the essentials of English communication. This will follow the A2 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for developers.",
"The first half of the curriculum will help you get comfortable with English grammar and usage. It will give you tons of hands-on practice. You'll learn basics like introducing yourself, making small talk, and discussing your work.",
@@ -2372,7 +2372,10 @@
"Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility."
]
},
"qpra": { "title": "30", "intro": [] },
"qpra": {
"title": "30",
"intro": []
},
"lecture-understanding-computer-internet-and-tooling-basics": {
"title": "Understanding Computer, Internet, and Tooling Basics",
"intro": [
@@ -4170,7 +4173,10 @@
"Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
]
},
"kagw": { "title": "258", "intro": [] },
"kagw": {
"title": "258",
"intro": []
},
"lecture-introduction-to-javascript-libraries-and-frameworks": {
"title": "Introduction to JavaScript Libraries and Frameworks",
"intro": [
@@ -4443,11 +4449,26 @@
"In this lesson, you will learn about TypeScript configuration files and how to use them."
]
},
"trvf": { "title": "293", "intro": [] },
"kwmg": { "title": "294", "intro": [] },
"nodx": { "title": "295", "intro": [] },
"erfj": { "title": "296", "intro": [] },
"muyw": { "title": "297", "intro": [] },
"trvf": {
"title": "293",
"intro": []
},
"kwmg": {
"title": "294",
"intro": []
},
"nodx": {
"title": "295",
"intro": []
},
"erfj": {
"title": "296",
"intro": []
},
"muyw": {
"title": "297",
"intro": []
},
"review-typescript": {
"title": "Typescript Review",
"intro": [
@@ -4465,8 +4486,14 @@
"Review the Front End Libraries concepts to prepare for the upcoming quiz."
]
},
"rdzk": { "title": "301", "intro": [] },
"vtpz": { "title": "302", "intro": [] },
"rdzk": {
"title": "301",
"intro": []
},
"vtpz": {
"title": "302",
"intro": []
},
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
@@ -7570,8 +7597,14 @@
"title": "Introducing Yourself Basics",
"intro": ["", ""]
},
"es-a1-learn-meet-luna": { "title": "Meet Luna", "intro": ["", ""] },
"es-a1-learn-meet-mateo": { "title": "Meet Mateo", "intro": ["", ""] },
"es-a1-learn-meet-luna": {
"title": "Meet Luna",
"intro": ["", ""]
},
"es-a1-learn-meet-mateo": {
"title": "Meet Mateo",
"intro": ["", ""]
},
"es-a1-learn-meet-julieta": {
"title": "Meet Julieta",
"intro": ["", ""]
@@ -8010,7 +8043,10 @@
"Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility."
]
},
"qpra": { "title": "30", "intro": [] },
"qpra": {
"title": "30",
"intro": []
},
"lecture-understanding-computer-internet-and-tooling-basics": {
"title": "Understanding Computer, Internet, and Tooling Basics",
"intro": [
@@ -8736,7 +8772,10 @@
"title": "Single Finals",
"intro": ["", ""]
},
"zh-a1-learn-initials": { "title": "Initials", "intro": ["", ""] },
"zh-a1-learn-initials": {
"title": "Initials",
"intro": ["", ""]
},
"zh-a1-learn-compound-finals": {
"title": "Compound Finals",
"intro": ["", ""]
@@ -8787,12 +8826,18 @@
"title": "Introducing Others Basics",
"intro": ["", ""]
},
"zh-a1-learn-the-team": { "title": "The Team", "intro": ["", ""] },
"zh-a1-learn-the-team": {
"title": "The Team",
"intro": ["", ""]
},
"zh-a1-learn-a-new-colleague": {
"title": "A New Colleague",
"intro": ["", ""]
},
"zh-a1-learn-my-family": { "title": "My Family", "intro": ["", ""] },
"zh-a1-learn-my-family": {
"title": "My Family",
"intro": ["", ""]
},
"zh-a1-practice-introducing-others": {
"title": "Introducing Others Practice",
"intro": ["", ""]
@@ -8955,7 +9000,9 @@
"part-12": "Containers",
"part-13": "Using Relational Databases"
},
"modules": { "basic-html": "Basic HTML" },
"modules": {
"basic-html": "Basic HTML"
},
"module-intros": {
"basic-html": {
"title": "Basic HTML",
@@ -8968,7 +9015,9 @@
"daily-coding-challenge": {
"title": "Daily Coding Challenge",
"blocks": {
"daily-coding-challenge": { "title": "Daily Coding Challenge" }
"daily-coding-challenge": {
"title": "Daily Coding Challenge"
}
}
},
"misc-text": {

View File

@@ -57,7 +57,6 @@ export const ConditionalDonationAlert = ({
const betaCertifications: SuperBlocks[] = [];
const unfinishedCertifications = [
SuperBlocks.A2English,
SuperBlocks.B1English,
SuperBlocks.A1Spanish,
SuperBlocks.A2Spanish,

View File

@@ -1,6 +1,6 @@
{
"name": "A2 English for Developers Certification Exam",
"isUpcomingChange": true,
"isUpcomingChange": false,
"dashedName": "en-a2-certification-exam",
"helpCategory": "English",
"challengeOrder": [

View File

@@ -16,7 +16,7 @@ test.describe('Public profile certifications', () => {
await expect(
page.getByRole('link', { name: /View.+Certification/ })
).toHaveCount(19);
).toHaveCount(20);
});
test('Should show claimed certifications if the username includes uppercase characters', async ({
@@ -48,7 +48,7 @@ test.describe('Public profile certifications', () => {
await page.waitForURL('/certifiedboozer');
await expect(
page.getByRole('link', { name: /View.+Certification/ })
).toHaveCount(19);
).toHaveCount(20);
});
test.afterAll(() => {

View File

@@ -12,7 +12,7 @@ const LANDING_PAGE_LINKS = [
},
{
slug: 'a2-english-for-developers',
name: 'A2 English for Developers (Beta) Certification'
name: 'A2 English for Developers Certification'
},
{
slug: 'b1-english-for-developers',

View File

@@ -32,8 +32,8 @@ export enum Certification {
PythonV9 = 'python-v9',
RelationalDbV9 = 'relational-databases-v9',
BackEndDevApisV9 = 'back-end-development-and-apis-v9',
A2English = 'a2-english-for-developers',
FullStackDeveloperV9 = 'full-stack-developer-v9',
A2English = 'a2-english-for-developers-v8',
B1English = 'b1-english-for-developers-v8',
A2Spanish = 'a2-professional-spanish-v8',
A2Chinese = 'a2-professional-chinese-v8',
@@ -54,6 +54,7 @@ export function isCertification(x: string): x is Certification {
// "Current" certifications are the subset of standard certifications that are
// live and not legacy.
export const currentCertifications = [
Certification.A2English,
Certification.FoundationalCSharp
] as const;
@@ -95,7 +96,6 @@ export const upcomingCertifications = [
Certification.RelationalDbV9,
Certification.BackEndDevApisV9,
Certification.FullStackDeveloperV9,
Certification.A2English,
Certification.B1English,
Certification.A2Spanish,
Certification.A2Chinese,
@@ -205,11 +205,11 @@ export const certSlugTypeMap = {
[Certification.RelationalDb]: certTypes.relationalDatabaseV8,
[Certification.CollegeAlgebraPy]: certTypes.collegeAlgebraPyV8,
[Certification.FoundationalCSharp]: certTypes.foundationalCSharpV8,
[Certification.A2English]: certTypes.a2English,
// upcoming
[Certification.RespWebDesignV9]: certTypes.respWebDesignV9,
[Certification.JsV9]: certTypes.javascriptV9,
[Certification.A2English]: certTypes.a2English
[Certification.JsV9]: certTypes.javascriptV9
};
export const superBlockCertTypeMap = {

View File

@@ -72,7 +72,7 @@ export const superBlockList = [
path: 'foundational-c-sharp-with-microsoft'
},
{
name: 'A2 English for Developers (Beta)',
name: 'A2 English for Developers',
path: 'a2-english-for-developers'
},
{