QA/Mozmill Test Automation/Test Modules Refactor: Difference between revisions

 
(8 intermediate revisions by the same user not shown)
Line 14: Line 14:
  |- valign="top"
  |- valign="top"
  | '''Status:'''
  | '''Status:'''
  | In process of determining style guidelines
  | '''on hold'''
  |- valign="top"
  |- valign="top"
  | '''Repository Location:'''
  | '''Repository Location:'''
Line 71: Line 71:
  | {{bug|}}
  | {{bug|}}
  | All error messages use format:
  | All error messages use format:
*  
* message + " - got " + condition1 + ", expected " + condition2
* ''message'' uses positive wording
  |-
  |-
  | {{bug|}}
  | {{bug|}}
Line 100: Line 101:
  | {{bug|}}
  | {{bug|}}
  | Adopt consistent conditional cuddling
  | Adopt consistent conditional cuddling
|-
| {{bug|}}
| All included modules should use variable names starting with capital
|-
| {{bug|}}
| All conditionals use !== or ===
  |}
  |}


Line 110: Line 117:
Discussion [http://mozqa.ietherpad.com/refactor-discussion here]
Discussion [http://mozqa.ietherpad.com/refactor-discussion here]


; Arrays
; Generally Agreed
* Block style
* We should always use the triple operator to not experience strange behavior
** What style?
** ===/!== instead of ==/!=
** Single Index
* Variables for imported modules have to start with a capital letter
** Multiple Index
** i.e. var Tabs = require(".../tabs")
** Multiple Index, Multiple Object
* Class names have to start with a capital letter
 
* setupModule(module) and teardownModule(module) have to specify the module parameter
; Sleep()
* If variable name contains an acronym, capitalize the acronym
* When is sleep() ok? Is it ever ok?
* Error messages should use the following format:
 
** Boolean: "<element> is <state>."
; Local Test Pages
** Value: "<element> is <state>: got 'value', expected 'value'"
<pre>
** Example: "Password notification is visible"
const LOCAL_TEST_PAGES = [
** Example: "mozilla.org is loaded: got '<loaded_domain>', expected 'mozilla.org'"
  { url: 'some url', id: 'some id' },
* sleep() should be avoided and only used when...
  { url: 'some url', id: 'some id' }
** element is not immediately available
];
** state is not immediately available
</pre>
** waitFor() fails to capture event
* Should always be declared as a constant Array
* Use array block formatting
* Name "LOCAL_TEST_PAGES"
 
; Test Files API Module
* We should have a module specific to loading of test files
 
; Parameter in setupModule() & teardownModule()
* Is module needed, wanted?
 
; Error Messages
<pre>
"Expected <element> to be <state>"
 
"Expected password-save notification bar to be visible"
</pre>
* Messages should be positive in nature
* <element> should be what the element represents
* <state> should be what state we expect that element to be in
 
; Parameter Naming
* param or aParam?
* Example: label or aLabel
* the latter is common in Mozilla coding styles
 
; Scope of Constants
* Global or within the tightest scope?


; Review Guidelines
; Needs Discussion
What are our "golden-rule" guidelines for different review states?
* TestFilesAPI for loading of test files
* r?
** We should have a module specific to loading of test files
* r+
** We should also check how we can make sure those locations are easily replacable with other servers (apache, ...)
* r-
* Parameters should be named using aParam format
* feedback?
** shows that a variable inside a long function is a parameter and hasn't been declared locally
* feedback+
* Constant scope - should they be global and local?
* feedback-
Confirmed users
14,525

edits