|
- import test from "ava";
- import execa from "execa";
-
- test("default options", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "\\g-A1-.OHEwrXjT#");
- });
-
- test("no login", async t => {
- return execa.shell('echo password | ./cli.js "lesspass.com"').then(result => {
- t.is(result.stdout, "master password: 7Cw-APO5Co?G>W>u");
- });
- });
-
- test("options can be before parameters", async t => {
- const { stdout } = await execa("./cli.js", [
- "-C",
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "Copied to clipboard");
- });
-
- test("long options can be before parameters", async t => {
- const { stdout } = await execa("./cli.js", [
- "--clipboard",
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "Copied to clipboard");
- });
-
- test("length", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--length=14"
- ]);
- t.is(stdout, "=0\\A-.OHEKvwrX");
- });
-
- test("length shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-L=14"
- ]);
- t.is(stdout, "=0\\A-.OHEKvwrX");
- });
-
- test("counter", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--counter=2"
- ]);
- t.is(stdout, "Vf:F1'!I`8Y2`GBE");
- });
-
- test("counter shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-c=2"
- ]);
- t.is(stdout, "Vf:F1'!I`8Y2`GBE");
- });
-
- test("no lowercase", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--no-lowercase"
- ]);
- t.is(stdout, 'JBG\\`3{+0["(E\\JJ');
- });
-
- test("no lowercase shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-uds"
- ]);
- t.is(stdout, 'JBG\\`3{+0["(E\\JJ');
- });
-
- test("only lowercase", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-l"
- ]);
- t.is(stdout, "fmnujoqgcxmpffyh");
- });
-
- test("no uppercase", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--no-uppercase"
- ]);
- t.is(stdout, 'jbg\\`3{+0["(e\\jj');
- });
-
- test("no uppercase shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-lds"
- ]);
- t.is(stdout, 'jbg\\`3{+0["(e\\jj');
- });
-
- test("only uppercase", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-u"
- ]);
- t.is(stdout, "FMNUJOQGCXMPFFYH");
- });
-
- test("no digits", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--no-digits"
- ]);
- t.is(stdout, ";zkB#m]mNF$;J_Ej");
- });
-
- test("no digits shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-lus"
- ]);
- t.is(stdout, ";zkB#m]mNF$;J_Ej");
- });
-
- test("only digits", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-d"
- ]);
- t.is(stdout, "7587019305478072");
- });
-
- test("no symbols", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--no-symbols"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("no symbols shortcut", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-lud"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("only symbols", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-s"
- ]);
- t.is(stdout, "<\"]|'`%};'`>-'[,");
- });
-
- test("test space in password", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "my Master Password"
- ]);
- t.is(stdout, "D1PBB34\\#fh!LY={");
- });
-
- test("doc 1", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "--no-symbols"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("doc 1 options before", async t => {
- const { stdout } = await execa("./cli.js", [
- "--no-symbols",
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("doc 2", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-lud"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("doc 2 options before", async t => {
- const { stdout } = await execa("./cli.js", [
- "-lud",
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "OlfK63bmUhqrGODR");
- });
-
- test("doc 3", async t => {
- const { stdout } = await execa("./cli.js", [
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-d",
- "-L8"
- ]);
- t.is(stdout, "75837019");
- });
-
- test("doc 3 options before", async t => {
- const { stdout } = await execa("./cli.js", [
- "-d",
- "-L8",
- "lesspass.com",
- "contact@lesspass.com",
- "password"
- ]);
- t.is(stdout, "75837019");
- });
-
- test("doc 3 options before and after", async t => {
- const { stdout } = await execa("./cli.js", [
- "-d",
- "lesspass.com",
- "contact@lesspass.com",
- "password",
- "-L8"
- ]);
- t.is(stdout, "75837019");
- });
-
- test("nrt numbers should be considered as string not integers", async t => {
- const p = execa("./cli.js", ["example.org", "123", "password"]);
- const p2 = execa("./cli.js", ["example.org", "0123", "password"]);
- const p3 = execa("./cli.js", ["example.org", '"0123"', "password"]);
- const p4 = execa("./cli.js", ["example.org", "00123", "password"]);
- return Promise.all([p, p2, p3, p4]).then(v => {
- t.is(v[0].stdout, "sMb8}N&`J4wkF9q~");
- t.is(v[1].stdout, "5,4SqhB2[=/h\\DZh");
- t.is(v[2].stdout, "u0Fz)EOJ4i\\{{;a~");
- t.is(v[3].stdout, '=}|O7hN0ZHdjQ{">');
- });
- });
|