Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MS] Updated recovery device and migrated tests to pw #8742

Merged
merged 6 commits into from
Nov 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 2 additions & 16 deletions .github/workflows/ci-web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,27 +151,13 @@ jobs:
- name: Check testbed server is running
run: curl http://localhost:6777

- name: Install cypress binary
run: |
npm exec cypress version
npm exec cypress install
working-directory: client
timeout-minutes: 5

- name: E2E tests
run: npm run test:e2e:headless
env:
TESTBED_SERVER: parsec3://localhost:6777?no_ssl=true
working-directory: client
timeout-minutes: 20

- name: Install Playwright dependencies
run: npx playwright install --with-deps
working-directory: client
timeout-minutes: 5

- name: Playwright E2E tests
run: npm run pw:e2e:headless
- name: E2E tests
run: npm run test:e2e:headless
env:
TESTBED_SERVER: parsec3://localhost:6777?no_ssl=true
working-directory: client
Expand Down
8 changes: 2 additions & 6 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,8 @@
"preview": "vite preview",
"lint": "eslint . --max-warnings=0 && vue-tsc --noEmit",
"test:unit": "vitest run --dom",
"cy:e2e:headless": "cypress run --e2e",
"cy:e2e": "cypress run --e2e --headed",
"pw:e2e": "npx playwright test --headed --reporter=null --timeout=30000",
"pw:e2e:headless": "npx playwright test --reporter=null --timeout=30000",
"test:e2e": "start-server-and-test dev http://localhost:8080 cy:e2e",
"test:e2e:headless": "start-server-and-test dev http://localhost:8080 cy:e2e:headless",
"test:e2e": "npx playwright test --headed --reporter=null --timeout=30000",
"test:e2e:headless": "npx playwright test --reporter=null --timeout=30000",
"web:open": "vite --open",
"web:release": "npm run lint && vite build",
"native:build": "node ./scripts/vite_build_for_native.cjs",
Expand Down
37 changes: 24 additions & 13 deletions client/src/locales/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@
},
"HomePage": {
"topbar": {
"backToList": "Return to organizations",
"backToLogin": "Return to login",
"settings": "Settings",
"contactUs": "Contact us",
"documentation": "Documentation",
Expand Down Expand Up @@ -152,7 +154,6 @@
"joinOrganizationSubtitle": "I received an invitation to join an organization"
},
"organizationLogin": {
"backToList": "Return to organizations",
"forgottenPassword": "Forgot your password?",
"emailLabel": "Email",
"passwordLabel": "Password",
Expand All @@ -173,7 +174,13 @@
"archiveFailure": "Failed to archive the device."
},
"organizationActionSheet": "Organization",
"keyringFailed": "Could not log in",
"loginErrors": {
"keyringFailed": "Could not log in",
"keyringFailedTitle": "Login failed",
"keyringFailedQuestion": "Could not login using the system authentication. Would you like to use a recovery file?",
"keyringFailedUsedRecovery": "Use a recovery file",
"keyringFailedAbort": "No"
},
"bmsOrganizationNotFound": "Could not find the organization {organization} on this device.",
"noDevices": {
"titleCreateOrga": "New to Parsec?",
Expand Down Expand Up @@ -702,16 +709,16 @@
"joinedOn": "Joined:",
"now": "Now",
"restorePassword": {
"title": "Password recovery files",
"title": "Authentication recovery files",
"done": {
"subtitle": "Password recovery files have been created and downloaded.",
"subtitle": "Authentication recovery files have been created and downloaded.",
"label": "Files already downloaded",
"button": "Re-download recovery files"
},
"notDone": {
"label": "Action required",
"subtitle": "Parsec does not store your password.",
"subtitle2": "These files can be used to reset your password on a device if you forget it.",
"subtitle2": "These files can be used to reset your authentication on a device.",
"button": "Create recovery files"
}
},
Expand Down Expand Up @@ -807,28 +814,29 @@
"forgottenPassword": "Forgotten password",
"recoveryFile": "Recovery file",
"recoveryKey": "Secret key",
"setNewPassword": "Choose a new password",
"passwordChanged": "Password was successfully changed!"
"setNewPassword": "Choose a new authentication",
"passwordChanged": "Authentication was successfully updated!"
},
"subtitles": {
"recoveryFilesMustExistWarning": "You must have created recovery files in order to reset your password.",
"recoveryFilesMustExistWarning": "You must have created recovery files in order to reset your authentication.",
"password": "Password",
"passwordModified": "You can now login with your new password.",
"passwordModified": "You can now login with your new authentication.",
"noFileSelected": "No file selected"
},
"actions": {
"browse": "Browse",
"next": "Next",
"validatePassword": "Validate password",
"goBackToLogin": "Go back to login"
"validateAuth": "Confirm",
"login": "Login"
},
"errors": {
"fileErrorMessage": "Invalid recovery file.",
"keyErrorMessage": "The secret key does not match the recovery file.",
"passwordErrorMessage": "Passwords do not match or are not strong enough.",
"saveDeviceErrorMessage": "An error has occurred, the device recovery failed.",
"internalErrorMessage": "An error has occurred"
}
},
"secretKeyPlaceholder": "FH3H-N3DW-ABED-A6Q7-..."
},
"ExportRecoveryDevicePage": {
"titles": {
Expand All @@ -854,8 +862,11 @@
"keyDownloadOk": "The secret key was successfully downloaded"
},
"filenames": {
"recoveryFile": "Parsec_Recovery_File_{org}.data",
"recoveryFile": "Parsec_Recovery_File_{org}.psrk",
"recoveryKey": "Parsec_Recovery_Code_{org}.txt"
},
"errors": {
"exportFailed": "Failed to create a recovery file."
}
},
"SasCodeChoice": {
Expand Down
37 changes: 24 additions & 13 deletions client/src/locales/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@
},
"HomePage": {
"topbar": {
"backToList": "Retour aux organisations",
"backToLogin": "Retour à la connexion",
"settings": "Paramètres",
"contactUs": "Nous contacter",
"documentation": "Documentation",
Expand Down Expand Up @@ -152,7 +154,6 @@
"joinOrganizationSubtitle": "J'ai reçu une invitation à rejoindre une organisation"
},
"organizationLogin": {
"backToList": "Retour aux organisations",
"forgottenPassword": "Mot de passe oublié ?",
"emailLabel": "Email",
"passwordLabel": "Mot de passe",
Expand All @@ -173,7 +174,13 @@
"archiveFailure": "Impossible d'archiver l'appareil."
},
"organizationActionSheet": "Organisation",
"keyringFailed": "Impossible de se connecter",
"loginErrors": {
"keyringFailed": "Impossible de se connecter",
"keyringFailedTitle": "Impossible de se connecter",
"keyringFailedQuestion": "La connexion en utilisant l'authentification du système a échoué. Souhaitez-vous utiliser un fichier de récupération ?",
"keyringFailedUsedRecovery": "Utiliser un fichier de récupération",
"keyringFailedAbort": "Non"
},
"bmsOrganizationNotFound": "Impossible de trouver l'organisation {organization} sur cet appareil.",
"noDevices": {
"titleCreateOrga": "Vous débutez sur Parsec ?",
Expand Down Expand Up @@ -702,16 +709,16 @@
"joinedOn": "Rejoint :",
"now": "À l'instant",
"restorePassword": {
"title": "Fichiers de récupération de mot de passe",
"title": "Fichiers de récupération d'authentification'",
"done": {
"subtitle": "Vous avez créé et sauvegardé les fichiers de récupération de mot de passe.",
"subtitle": "Vous avez créé et sauvegardé les fichiers de récupération d'authentification'.",
"label": "Fichiers déjà téléchargés",
"button": "Re-télécharger les fichiers"
},
"notDone": {
"label": "Action requise",
"subtitle": "Parsec ne garde pas votre mot de passe.",
"subtitle2": "Ces fichiers vous permettent de réinitialiser votre mot de passe sur un appareil en cas d'oubli.",
"subtitle2": "Ces fichiers vous permettent de réinitialiser votre authentification sur un appareil en cas d'oubli.",
"button": "Créer des fichiers de récupération"
}
},
Expand Down Expand Up @@ -807,28 +814,29 @@
"forgottenPassword": "Mot de passe oublié",
"recoveryFile": "Fichier de récupération",
"recoveryKey": "Clé secrète",
"setNewPassword": "Définissez un nouveau mot de passe",
"passwordChanged": "Le mot de passe a bien été modifié"
"setNewPassword": "Choisissez votre méthode d'authentification",
"passwordChanged": "L'authentification a bien été modifiée"
},
"subtitles": {
"recoveryFilesMustExistWarning": "Vous devez avoir créé des fichiers de récupération pour réinitialiser votre mot de passe.",
"recoveryFilesMustExistWarning": "Vous devez avoir créé des fichiers de récupération pour réinitialiser votre authentification.",
"password": "Mot de passe",
"passwordModified": "Vous pouvez vous connecter avec votre nouveau mot de passe.",
"passwordModified": "Vous pouvez vous connecter avec votre nouvelle authentification.",
"noFileSelected": "Aucun fichier sélectionné"
},
"actions": {
"browse": "Parcourir",
"next": "Suivant",
"validatePassword": "Valider mon mot de passe",
"goBackToLogin": "Revenir à la connexion"
"validateAuth": "Confirmer",
"login": "Se connecter"
},
"errors": {
"fileErrorMessage": "Le fichier de récupération est invalide.",
"keyErrorMessage": "La clé secrète ne correspond pas au fichier de récupération.",
"passwordErrorMessage": "Les mots de passe ne correspondent pas ou ne sont pas assez forts.",
"saveDeviceErrorMessage": "Une erreur est survenue, la récupération d'appareil a échoué.",
"internalErrorMessage": "Une erreur est survenue"
}
},
"secretKeyPlaceholder": "FH3H-N3DW-ABED-A6Q7-.."
},
"ExportRecoveryDevicePage": {
"titles": {
Expand All @@ -854,8 +862,11 @@
"keyDownloadOk": "La clé secrète a bien été téléchargée"
},
"filenames": {
"recoveryFile": "Parsec_Fichier_Récupération_{org}.data",
"recoveryFile": "Parsec_Fichier_Récupération_{org}.psrk",
"recoveryKey": "Parsec_Code_Récupération_{org}.txt"
},
"errors": {
"exportFailed": "Impossible de créer un fichier de récupération."
}
},
"SasCodeChoice": {
Expand Down
Loading