Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
996a18a
Setting up playwright node
Mohak51234 May 25, 2026
452c604
Implemented M1.2 and M1.3 and M1.4
Mohak51234 May 26, 2026
ff54fc4
Merge branch 'develop' into GSoC-M1.2
Mohak51234 May 30, 2026
96b5232
Moved common mocks to setUp
Mohak51234 May 30, 2026
4d56c95
Migrated add-and-remove-exploration to playwright
Mohak51234 Jun 3, 2026
ce9acea
Exclude playwright acceptance tests from frontend test runner
Mohak51234 Jun 3, 2026
37c965d
Removed puppeteer spec
Mohak51234 Jun 3, 2026
94678ee
Exclude playwright directory in root-files-mapping-generator
Mohak51234 Jun 4, 2026
70acdbf
Exclude playwright-acceptance-tests from root TS and Karma configs
Mohak51234 Jun 4, 2026
f119b41
Migrated completes-the-exploration... to playwright
Mohak51234 Jun 5, 2026
922e491
Migrated sets-goal-on-learner-dashboard to playwright
Mohak51234 Jun 6, 2026
976ed12
Migrated provide-feedback
Mohak51234 Jun 6, 2026
7d3f017
fixed flake
Mohak51234 Jun 7, 2026
1d0568b
testing
Mohak51234 Jun 7, 2026
b9bc7e3
testing
Mohak51234 Jun 7, 2026
9f63fe1
testing
Mohak51234 Jun 7, 2026
4cd5148
removing unnecessary log
Mohak51234 Jun 7, 2026
24d22ca
Merge branch 'develop' into GSoC-M1.8.4
Mohak51234 Jun 7, 2026
df616d3
removing unnecessary log
Mohak51234 Jun 7, 2026
bf39659
Merge branch 'develop' into GSoC-M1.8.4
Mohak51234 Jun 7, 2026
e80bf43
Migrated access-pages-that-require-higher-privileges
Mohak51234 Jun 7, 2026
b0ad946
Migrated goes-through-the-sign-in-flow
Mohak51234 Jun 8, 2026
347aa92
Migrated reaches-a-checkpoint
Mohak51234 Jun 9, 2026
46973c9
Fixing lint errors
Mohak51234 Jun 9, 2026
06261d6
Migrated export-and-delete-account
Mohak51234 Jun 9, 2026
684cffa
Migrated changes-site-language
Mohak51234 Jun 9, 2026
f1d91c6
Fixing flake
Mohak51234 Jun 10, 2026
a58d350
Merge branch 'develop' into GSoC-M1.7.6
Mohak51234 Jun 12, 2026
b479e1e
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 12, 2026
df2b74b
Merge branch 'develop' into GSoC-M1.7.6
Mohak51234 Jun 16, 2026
d1fe31e
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 16, 2026
b5d1aa0
Fixing lint
Mohak51234 Jun 16, 2026
3740026
Fixing lint
Mohak51234 Jun 16, 2026
ba868c0
Fix errors
Mohak51234 Jun 17, 2026
a63cc57
Merge branch 'develop' into GSoC-M1.7.6
Mohak51234 Jun 19, 2026
a3fa7c7
Fixing lint
Mohak51234 Jun 19, 2026
223a499
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 19, 2026
ed748c8
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 24, 2026
23238ad
Merge branch 'develop' into GSoC-M1.7.6
Mohak51234 Jun 25, 2026
c55174a
Merge GSoC-M1.7.5 into GSoC-M1.7.6
Mohak51234 Jun 25, 2026
4f9ca4d
Merge branch 'develop' into GSoC-M1.7.6
Mohak51234 Jun 25, 2026
e30ad35
Fix #21292: Wait for save progress tooltip to disappear before clicki…
KURO-1125 Jun 26, 2026
bde6699
Fix #NA: Compressed the bannerE.svg in Background folder (#26559)
KartikSuryavanshi Jun 26, 2026
77991d7
Removed global
Mohak51234 Jun 26, 2026
2b207b7
Fix part of #15106: Resolve strict Mypy typing errors in user_domain_…
Gabriel-Farias-Azevedo Jun 26, 2026
3289b71
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 26, 2026
1cf232a
Merging GSoC-M1.7.6
Mohak51234 Jun 26, 2026
b68ed75
Fail for missing snapshots
Mohak51234 Jun 26, 2026
5466497
Fix #26148: Resolve Arabic cursive text rendering in MathJax equation…
VirenPassi Jun 26, 2026
bd0f717
Fix part of #23578: Add linter check and allowlist to standardize mod…
31puneet Jun 26, 2026
22a0e59
[GSoC 2026] M1.7.6 - Fix part of #24715: Migrate logged-in-learner/re…
Mohak51234 Jun 26, 2026
d885cf3
Added correct directory for playwright-results
Mohak51234 Jun 26, 2026
e19e09a
Merge branch 'develop' into GSoC-M1.7.7
Mohak51234 Jun 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
930 changes: 1 addition & 929 deletions assets/images/background/bannerE.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 9 additions & 9 deletions core/domain/auth_services_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,27 +53,27 @@ def setUp(self) -> None:
'full_user_1',
'12345',
[constants.DEFAULT_LANGUAGE_CODE],
None,
None,
None,
'en',
'en',
'en',
user_id=self.full_user_id,
)
self.modifiable_profile_user_data = [
user_domain.ModifiableUserData(
'profile_user_1',
'12345',
[constants.DEFAULT_LANGUAGE_CODE],
None,
None,
None,
'en',
'en',
'en',
),
user_domain.ModifiableUserData(
'profile_user_2',
'12345',
[constants.DEFAULT_LANGUAGE_CODE],
None,
None,
None,
'en',
'en',
'en',
),
]

Expand Down
19 changes: 10 additions & 9 deletions core/domain/user_domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1408,9 +1408,9 @@ class ModifiableUserDataDict(TypedDict):
display_alias: str
pin: Optional[str]
preferred_language_codes: List[str]
preferred_site_language_code: Optional[str]
preferred_audio_language_code: Optional[str]
preferred_translation_language_code: Optional[str]
preferred_site_language_code: str
preferred_audio_language_code: str
preferred_translation_language_code: str
user_id: Optional[str]


Expand All @@ -1421,9 +1421,9 @@ class RawUserDataDict(TypedDict):
display_alias: str
pin: Optional[str]
preferred_language_codes: List[str]
preferred_site_language_code: Optional[str]
preferred_audio_language_code: Optional[str]
preferred_translation_language_code: Optional[str]
preferred_site_language_code: str
preferred_audio_language_code: str
preferred_translation_language_code: str
user_id: Optional[str]


Expand All @@ -1437,11 +1437,12 @@ def __init__(
display_alias: str,
pin: Optional[str],
preferred_language_codes: List[str],
preferred_site_language_code: Optional[str],
preferred_audio_language_code: Optional[str],
preferred_translation_language_code: Optional[str],
preferred_site_language_code: str,
preferred_audio_language_code: str,
preferred_translation_language_code: str,
user_id: Optional[str] = None,
) -> None:
# Atribuições permanecem idênticas...
"""Constructs a ModifiableUserData domain object.

Args:
Expand Down
25 changes: 13 additions & 12 deletions core/domain/user_domain_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ def __init__(
display_alias: str,
pin: Optional[str],
preferred_language_codes: List[str],
preferred_site_language_code: Optional[str],
preferred_audio_language_code: Optional[str],
preferred_translation_language_code: Optional[str],
preferred_site_language_code: str,
preferred_audio_language_code: str,
preferred_translation_language_code: str,
user_id: Optional[str] = None,
fake_field: Optional[str] = None,
) -> None:
Expand Down Expand Up @@ -94,9 +94,10 @@ def from_dict( # type: ignore[override]
modifiable_user_data_dict['display_alias'],
modifiable_user_data_dict['pin'],
modifiable_user_data_dict['preferred_language_codes'],
modifiable_user_data_dict['preferred_site_language_code'],
modifiable_user_data_dict['preferred_audio_language_code'],
modifiable_user_data_dict['preferred_translation_language_code'],
modifiable_user_data_dict['preferred_site_language_code'] or '',
modifiable_user_data_dict['preferred_audio_language_code'] or '',
modifiable_user_data_dict['preferred_translation_language_code']
or '',
modifiable_user_data_dict['user_id'],
modifiable_user_data_dict['fake_field'],
)
Expand Down Expand Up @@ -146,9 +147,9 @@ def setUp(self) -> None:
'display_alias': 'display_alias',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': 'user_id',
}
self.modifiable_user_data = (
Expand All @@ -159,9 +160,9 @@ def setUp(self) -> None:
'display_alias': 'display_alias_3',
'pin': None,
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
self.modifiable_new_user_data = (
Expand Down
30 changes: 15 additions & 15 deletions core/domain/user_services_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,19 +94,19 @@ def setUp(self) -> None:
'display_alias': 'display_alias',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': 'user_id',
}
new_user_data_dict: user_domain.RawUserDataDict = {
'schema_version': 1,
'display_alias': 'display_alias3',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
self.modifiable_user_data = (
Expand Down Expand Up @@ -1341,9 +1341,9 @@ def test_profile_user_settings_have_correct_roles(self) -> None:
'display_alias': 'display_alias3',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
modifiable_user_data = user_domain.ModifiableUserData.from_raw_dict(
Expand Down Expand Up @@ -1714,9 +1714,9 @@ def test_create_multiple_new_profiles_for_same_user_works_correctly(
'display_alias': display_alias_3,
'pin': None,
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
modifiable_new_user_data_2 = (
Expand Down Expand Up @@ -1880,9 +1880,9 @@ def test_update_users_data_for_multiple_users_works_correctly(self) -> None:
'display_alias': display_alias_3,
'pin': None,
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
modifiable_new_user_data_2 = (
Expand Down
36 changes: 18 additions & 18 deletions core/domain/wipeout_service_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,19 +280,19 @@ def setUp(self) -> None:
'display_alias': 'display_alias',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': self.user_1_id,
}
new_user_data_dict: user_domain.RawUserDataDict = {
'schema_version': 1,
'display_alias': 'display_alias3',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
self.modifiable_user_data = (
Expand Down Expand Up @@ -5465,19 +5465,19 @@ def setUp(self) -> None:
'display_alias': 'display_alias',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': self.user_1_id,
}
new_user_data_dict: user_domain.RawUserDataDict = {
'schema_version': 1,
'display_alias': 'display_alias3',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
self.modifiable_user_data = (
Expand Down Expand Up @@ -5864,19 +5864,19 @@ def setUp(self) -> None:
'display_alias': 'display_alias',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': self.user_1_id,
}
new_user_data_dict: user_domain.RawUserDataDict = {
'schema_version': 1,
'display_alias': 'display_alias3',
'pin': '12345',
'preferred_language_codes': [constants.DEFAULT_LANGUAGE_CODE],
'preferred_site_language_code': None,
'preferred_audio_language_code': None,
'preferred_translation_language_code': None,
'preferred_site_language_code': 'en',
'preferred_audio_language_code': 'en',
'preferred_translation_language_code': 'en',
'user_id': None,
}
self.modifiable_user_data = (
Expand Down
4 changes: 4 additions & 0 deletions core/templates/mathjaxConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ window.MathJax = {
showProcessingMessages: false,
SVG: {
useGlobalCache: false,
// This setting forces MathJax to inherit the page's font, which allows
// the browser's native Complex Text Layout (CTL) engine to properly connect
// right-to-left Arabic cursive characters inside \text{...} blocks (Fixes #26148).
mtextFontInherit: true,
linebreaks: {
automatic: true,
width: '500px',
Expand Down
12 changes: 6 additions & 6 deletions core/tests/ci-test-suite-configs/acceptance.json
Original file line number Diff line number Diff line change
Expand Up @@ -462,8 +462,8 @@
},
{
"name": "logged-in-learner/reaches-a-checkpoint-and-saves-their-progress",
"module": "core/tests/puppeteer-acceptance-tests/specs/logged-in-learner/reaches-a-checkpoint-and-saves-their-progress.spec.ts",
"framework": "puppeteer"
"module": "core/tests/playwright-acceptance-tests/specs/logged-in-learner/reaches-a-checkpoint-and-saves-their-progress.spec.ts",
"framework": "playwright"
},
{
"name": "logged-in-learner/starts-from-beginning-after-completing-a-lesson",
Expand All @@ -487,8 +487,8 @@
},
{
"name": "logged-in-learner/changes-site-language-to-rtl",
"module": "core/tests/puppeteer-acceptance-tests/specs/logged-in-learner/changes-site-language-to-rtl.spec.ts",
"framework": "puppeteer"
"module": "core/tests/playwright-acceptance-tests/specs/logged-in-learner/changes-site-language-to-rtl.spec.ts",
"framework": "playwright"
},
{
"name": "logged-in-learner/edit-the-profile",
Expand All @@ -497,8 +497,8 @@
},
{
"name": "logged-in-learner/export-and-delete-account",
"module": "core/tests/puppeteer-acceptance-tests/specs/logged-in-learner/export-and-delete-account.spec.ts",
"framework": "puppeteer"
"module": "core/tests/playwright-acceptance-tests/specs/logged-in-learner/export-and-delete-account.spec.ts",
"framework": "playwright"
},
{
"name": "logged-in-learner/manage-goals-in-learner-dashboard",
Expand Down
7 changes: 7 additions & 0 deletions core/tests/playwright-acceptance-tests/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
*/

import {defineConfig, devices} from '@playwright/test';
import path from 'path';

const PLAYWRIGHT_RESULTS_DIR = path.resolve(
__dirname,
'../../../../oppia_full_stack_test_playwright_results'
);

const isMobile = process.env.MOBILE === 'true';
const isCI = process.env.PROD_ENV === 'true';
Expand All @@ -29,6 +35,7 @@ export default defineConfig({
},
timeout: 10000,
},
outputDir: PLAYWRIGHT_RESULTS_DIR,
testDir: './specs',
timeout: 300000,
fullyParallel: false,
Expand Down
Loading
Loading