-
Notifications
You must be signed in to change notification settings - Fork 1
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
[#154] Add UI-based unit tests for demo application #197
base: develop
Are you sure you want to change the base?
Conversation
949f27a
to
da6e278
Compare
da6e278
to
ab3ce0a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
ac9c17e
to
bd55ec1
Compare
@pylapp Merci pour ton retour. Désormais, j'arrive à voir les warnings et plus de 250 d'entre eux sont corrigés. Les fonctions de test ont aussi été modifiées. Le rebase est fait |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La PR est loin d'être acceptable en l'état.
Il ne faut pas que tu corriges bêtement les warnings sans faire attention à ce que tu fais, surtout quand tu apportes de l'incohérence entre les fichiers du projet.
Regarde des classes de tests à côté ; tu pourras grandement t'en inspirer.
Dans les points à corriger :
- Il faut des sauts de lignes entre les fonctions, c'est la base ;
- le warning que tu as voulu corriger ne te dit pas de supprimer la ligne, mais les espaces inutiles en début de ligne ;
- Pour les classes de tests on n'a pas besoin de deinit, pour le coup tu peux désactiver proprement ce warning comme indiqué en commentaire ;
- Tu as réussi à mettre des fonctions de tests en dehors de leur classe de test ;
- On ajoute les nouvelles lignes du CHANGELOG par le haut ; ta ligne est totalement perdue dans une section ;
- Aucune documentation, tant pour les classes de tests que dans le DEVELOP par exemple ;
- Les MARKS sont utilisés n'importe comment ;
- Pourquoi on ne teste parfois que pour le color scheme light et pas le dark aussi ?
- Tu rajoutes du code qui ne semble n'avoir aucun rapport avec ce que tu dois faire dans ta PR.
Un MARK est une balise qui sert d'ancrage dans la minimap de Xcode, je te laisse chercher. Si tu ajoutes après les : un tiret, une ligne horizontale apparait pour séparer visuellement les choses. L'intérêt des MARK est d'apporter une aide visuelle dans le code, avec une structure claire. Deux MARK qui se suivent ne servent à rien.
Par exemple, si je prends :
// MARK: - Tests
// MARK: - Orange Theme Light Mode Width Tests
// MARK: - Width Tokens Tests
Le seul MARK utile est ici :
// MARK: - Orange Theme Light Mode Width Tests
D'ailleurs, je ne comprends pas comment pour un même code modulo la valeur du paramètre "named" tu peux définir des cas de tests différents.
Il faudrait que tu précises à la fin de la rubrique "UI tests in demo app" de DEVELOP comment ça fonctionne. Si je ne comprends pas, d'autres ne comprendront pas. Si on doit te demander comment ça fonctionne, c'est qu'il y a un problème a minima de documentation quelque part. Si tu n'es pas à l'aise en anglais pour expliquer clairement comment ça fonctionne, rédige le paragraphe en français en commentaire de cette PR et je traduirais.
Au besoin, demande de l'aide à @ludovic35 qui avait travaillé sur le sujet.
CHANGELOG.md
Outdated
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
- [Library] Add semantic tokens `spacePaddingInlineTallest`, `spacePaddingBlockTallest`, `spaceColumnGapTaller`, `spaceColumnGapWithArrowShortest`, `spaceRowGapShortest` (Figjam final synchronization of October 16th) | |||
- [Library] Add `elevationX200` raw token (Figjam final synchronization of October 16th) | |||
- [Library] Add semantic color tokens ([#124](https://github.com/Orange-OpenSource/ouds-ios/issues/124)) | |||
- [DemoApp] Add more UI tests on demo app ([#154](https://github.com/Orange-OpenSource/ouds-ios/issues/154)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut mettre la nouvelle ligne du CHANGELOG en haut de la section appropriée
@@ -114,6 +114,7 @@ struct ThemeSelectionButton: View { | |||
.pickerStyle(.automatic) | |||
} label: { | |||
Image(systemName: "paintpalette") | |||
.accessibilityLabel("app_common_theme_image_a11y") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Que fait cette ligne de code ici ? Je ne vois pas le rapport avec les tests UI que tu implémentes. Si ça n'a pas de rapport, il faut retirer. Si tu as décelé un bug, il faut créer une issue.
@@ -38,6 +38,7 @@ struct ShowcaseElementsPage: View { | |||
Card( | |||
title: Text(LocalizedStringKey(element.name)), | |||
icon: Image(element.imageName)) | |||
.accessibilityLabel(element.id) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
D'où vient cette ligne de code ? Si ça n'a pas de rapport avec le but initial de ta PR il faut retirer. Si tu as décelé un bug, il faut faire une issue
@@ -11,6 +11,9 @@ | |||
// Software description: A SwiftUI components library with code examples for Orange Unified Design System | |||
// | |||
|
|||
// MARK: - Common |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
D'où vient cette ligne de code ? Si ça n'a pas de rapport avec le but initial de ta PR il faut retirer. Si tu as décelé un bug, il faut faire une issue
Par ailleurs, il faut un saut de ligne après le MARK, comme c'est le cas ailleurs dans le fichier.
// Software description: A SwiftUI components library with code examples for Orange Unified Design System | ||
// | ||
|
||
import SwiftUI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pourquoi faire deux blocs d'imports ? Inspire toi des autres classes de tests. Il faut que tu mettes tout d'un bloc, trié alphabétiquement.
let vc = BorderTokenPage().environment(\.theme, InverseTheme()) | ||
assertSnapshot(of: vc, as: .image, named: "InverseTheme/testBorderToken_OrangeTheme_SectionRadius_BorderRadiusNone_Light") | ||
} | ||
func testBorderToken_InverseTheme_SectionRadius_BorderRadiusDefault_Light() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reste cohérent avec les autres fichiers du projet ; met des sauts de ligne entre les fonctions ! Configure au besoin ton IDE pour pas qu'il ajoute des espaces inutilement.
import OUDSTokensSemantic | ||
import SnapshotTesting | ||
|
||
class OUDSTokensDimensionUITests: XCTestCase { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il est superflu d'avoir un deinit dans les classes de tests ; regarde les autres fichiers de tests. Il y a une règle pour désactiver le warning associé : désactive-le au début de fichier, active-le à la fin, comme c'est le cas pour les autres fichiers.
Une classe doit être final, ajoute le mot clé.
Les "MARK: - Tests" n'apportent aucune valeur ici ; tu as déjà des MARK qui donnent des points d'ancrage dans la minimap, avec un trait horizontal dans l'affichage du code source.
De puis, il faut des sauts de lignes après les MARK, et entre les fonctions.
Les warnings que tu as certainement voulu corriger ne te demandaient pas de supprimer les lignes, mais de supprimes des espaces en trop en début de ligne.
Inspire toi des autres classe de test ; tu n'as même pas de documentation qui décrit le but de ce fichier.
Tu doubles à chaque fois tes MARK, ça ne sert à rien. Fais en un utile plutôt que deux qui se parasitent.
import OUDSTokensSemantic | ||
import SnapshotTesting | ||
|
||
class OUDSTokensElevationUITests: XCTestCase { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il est superflu d'avoir un deinit dans les classes de tests ; regarde les autres fichiers de tests. Il y a une règle pour désactiver le warning associé : désactive-le au début de fichier, active-le à la fin, comme c'est le cas pour les autres fichiers.
Une classe doit être final, ajoute le mot clé.
Les "MARK: - Tests" n'apportent aucune valeur ici ; tu as déjà des MARK qui donnent des points d'ancrage dans la minimap, avec un trait horizontal dans l'affichage du code source.
De puis, il faut des sauts de lignes après les MARK, et entre les fonctions.
Les warnings que tu as certainement voulu corriger ne te demandaient pas de supprimer les lignes, mais de supprimes des espaces en trop en début de ligne.
Inspire toi des autres classe de test ; tu n'as même pas de documentation qui décrit le but de ce fichier.
Tu doubles à chaque fois tes MARK, ça ne sert à rien. Fais en un utile plutôt que deux qui se parasitent.
import OUDSTokensSemantic | ||
import SnapshotTesting | ||
|
||
class OUDSTokensOpacityUITests: XCTestCase { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il est superflu d'avoir un deinit dans les classes de tests ; regarde les autres fichiers de tests. Il y a une règle pour désactiver le warning associé : désactive-le au début de fichier, active-le à la fin, comme c'est le cas pour les autres fichiers.
Une classe doit être final, ajoute le mot clé.
Les "MARK: - Tests" n'apportent aucune valeur ici ; tu as déjà des MARK qui donnent des points d'ancrage dans la minimap, avec un trait horizontal dans l'affichage du code source.
De puis, il faut des sauts de lignes après les MARK, et entre les fonctions.
Les warnings que tu as certainement voulu corriger ne te demandaient pas de supprimer les lignes, mais de supprimes des espaces en trop en début de ligne.
Inspire toi des autres classe de test ; tu n'as même pas de documentation qui décrit le but de ce fichier.
Tu doubles à chaque fois tes MARK, ça ne sert à rien. Fais en un utile plutôt que deux qui se parasitent.
import OUDSTokensSemantic | ||
import SnapshotTesting | ||
|
||
class OUDSTokensTypographyUITests: XCTestCase { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il est superflu d'avoir un deinit dans les classes de tests ; regarde les autres fichiers de tests. Il y a une règle pour désactiver le warning associé : désactive-le au début de fichier, active-le à la fin, comme c'est le cas pour les autres fichiers.
Une classe doit être final, ajoute le mot clé.
Les "MARK: - Tests" n'apportent aucune valeur ici ; tu as déjà des MARK qui donnent des points d'ancrage dans la minimap, avec un trait horizontal dans l'affichage du code source.
De puis, il faut des sauts de lignes après les MARK, et entre les fonctions.
Les warnings que tu as certainement voulu corriger ne te demandaient pas de supprimer les lignes, mais de supprimes des espaces en trop en début de ligne.
Inspire toi des autres classe de test ; tu n'as même pas de documentation qui décrit le but de ce fichier.
Tu doubles à chaque fois tes MARK, ça ne sert à rien. Fais en un utile plutôt que deux qui se parasitent.
29af724
to
4ec9673
Compare
547eb36
to
d68fddd
Compare
4ac33b0
to
76eba6a
Compare
76eba6a
to
0624115
Compare
Note: Please transform
- [ ]
into- (NA)
in the description when things are not applicableRelated issues
#154
Description
Add unit tests for screenshot comparisons
Motivation & Context
Types of change
Previews
Checklist
Contribution
Accessibility
Design
Development
Documentation
Checklist (for Core Team only)