4643
This commit is contained in:
@@ -1,74 +1,4 @@
|
||||
|
||||
Password breach warning error mitigation:
|
||||
|
||||
To suppress Chrome's "password exposed in breach" warning during Cypress tests with intentional weak test passwords, **disable Chrome's password leak detection features via browser launch flags**. This is the cleanest, most reliable solution for test environments.
|
||||
|
||||
### ✅ Recommended Fix (Cypress Config)
|
||||
Add this to your Cypress configuration to disable the relevant Chrome features:
|
||||
|
||||
#### For Cypress v10+ (`cypress.config.js`):
|
||||
```javascript
|
||||
const { defineConfig } = require('cypress');
|
||||
|
||||
module.exports = defineConfig({
|
||||
e2e: {
|
||||
setupNodeEvents(on, config) {
|
||||
on('before:browser:launch', (browser, launchOptions) => {
|
||||
if (browser.name === 'chrome') {
|
||||
// Disable password breach warnings + related features
|
||||
launchOptions.args.push(
|
||||
'--disable-features=PasswordLeakDetection,PasswordManagerLeakDetection,PasswordCheck,InsecureCredentialsWarning'
|
||||
);
|
||||
// Optional: Disable password manager entirely if warnings persist
|
||||
// launchOptions.args.push('--disable-blink-features=PasswordManager');
|
||||
}
|
||||
return launchOptions;
|
||||
});
|
||||
},
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
#### For Cypress ≤ v9 (`cypress/plugins/index.js`):
|
||||
```javascript
|
||||
module.exports = (on, config) => {
|
||||
on('before:browser:launch', (browser, launchOptions) => {
|
||||
if (browser.name === 'chrome') {
|
||||
launchOptions.args.push(
|
||||
'--disable-features=PasswordLeakDetection,PasswordManagerLeakDetection,PasswordCheck,InsecureCredentialsWarning'
|
||||
);
|
||||
}
|
||||
return launchOptions;
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
### 🔑 Why this works:
|
||||
- `PasswordLeakDetection` / `PasswordManagerLeakDetection`: Blocks breach-checking logic
|
||||
- `PasswordCheck`: Disables Chrome's "Password Checkup" feature
|
||||
- `InsecureCredentialsWarning`: Suppresses "insecure password" UI warnings (critical for obvious passwords like "Accounting")
|
||||
- Flags are **non-intrusive**—they don’t alter your app’s behavior or test logic
|
||||
- Works in both headed and headless Chrome modes
|
||||
- Zero maintenance vs. fragile DOM-interaction workarounds
|
||||
|
||||
### ⚠️ Important Notes:
|
||||
1. **Test passwords remain intentionally weak**—this solution *only* silences Chrome's UI warning.
|
||||
🔒 *Never use these passwords outside isolated test environments.*
|
||||
2. If warnings persist:
|
||||
- Update Chrome flags based on your Chrome version (check `chrome://version` → "Command Line")
|
||||
- Temporarily add `--disable-blink-features=PasswordManager` (disables entire password manager; use only if tests don’t rely on autofill)
|
||||
3. **Do NOT**:
|
||||
- Try clicking away the warning in tests (flaky, slows tests, fragile selector)
|
||||
- Disable Safe Browsing globally (`--safebrowsing-disable-auto-update`)—overly broad security risk
|
||||
- Modify system Chrome settings (Cypress uses isolated profiles)
|
||||
|
||||
### 💡 Pro Tip:
|
||||
For future-proofing, consider generating **unique strong passwords per test run** (e.g., `Accounting_${Date.now()}`) and resetting them between tests. This avoids breach warnings *and* aligns with security best practices—but the flag solution above is perfect for your current constraint of fixed sample passwords. 😊
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
From the olden times years ago:
|
||||
@@ -86,9 +16,6 @@ todo: meter reading table click on item to confirm item page no other way to eas
|
||||
|
||||
TODO: high priority grid sort and filter test that excercises *all* options and filter types
|
||||
this one will be hugely important as part of regression test as it was a constant source of issues in v7
|
||||
todo: drawing signature test might work with this code:
|
||||
|
||||
cy.get('.main-canvas').trigger('mousedown', 500, 100, { force: true }).trigger('mousemove', 500, 200, { force: true }).trigger('mouseup', { force: true });
|
||||
|
||||
Service user features work
|
||||
sb self contained and use standard test data because will also want to run without accounting prior
|
||||
|
||||
Reference in New Issue
Block a user