passbolt-styleguide
Version:
Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.
79 lines (68 loc) • 3.78 kB
JavaScript
/**
* Passbolt ~ Open source password manager for teams
* Copyright (c) 2021 Passbolt SA (https://www.passbolt.com)
*
* Licensed under GNU Affero General Public License version 3 of the or any later version.
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) 2021 Passbolt SA (https://www.passbolt.com)
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
* @link https://www.passbolt.com Passbolt(tm)
* @since 3.3.0
*/
import {PassphraseGenerator} from "./PassphraseGenerator";
describe("PassphraseGenerator", () => {
describe("detectPassphrase", () => {
it("detectPassphrase if a secret is a passphrase", () => {
const secret = "answering chirping luckiness android patriarch skinhead cacti ethics";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "numberWords": 8, "separator": " "});
});
it("detectPassphrase if a secret in uppercase is a passphrase", () => {
const secret = "ANSWERING CHIRPING LUCKINESS ANDROID PATRIARCH SKINHEAD CACTI ETHICS";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "numberWords": 8, "separator": " "});
});
it("detectPassphrase if a secret is a passphrase without separator", () => {
const secret = "answeringchirpingluckinessandroidpatriarchskinheadcactiethics";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "numberWords": 8, "separator": ""});
});
it("detectPassphrase if a secret is a passphrase with separator containing special characters", () => {
const secret = "answering/=\\%[]-chirping/=\\%[]-luckiness/=\\%[]-android/=\\%[]-patriarch/=\\%[]-skinhead/=\\%[]-cacti/=\\%[]-ethics";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "numberWords": 8, "separator": "/=\\%[]-"});
});
it("detectPassphrase if a secret is not a passphrase", () => {
const secret = "not-a-passhrase-123";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": false, "numberWords": 0, "separator": ""});
});
it("detectPassphrase if a secret has 2 words but is not structured like a passphrase", () => {
const secret = "step@bolt.";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": false});
});
it("detectPassphrase if a secret has 2 words and is structured like a passphrase", () => {
const secret = "step@@@@bolt";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "numberWords": 2, "separator": "@@@@"});
});
it("detectPassphrase if a secret has 2 words but secret starts with the detected separator", () => {
const secret = "@stepbolt";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": false});
});
it("detectPassphrase if a secret has 2 words but secret ends with the detected separator", () => {
const secret = "stepbolt&";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": false});
});
it("detectPassphrase if a secret has 1 word", () => {
const secret = "bolt";
const result = PassphraseGenerator.detectPassphrase(secret);
expect(result).toEqual({"isPassphrase": true, "separator": "", "numberWords": 1});
});
});
});