Skip to content

Instantly share code, notes, and snippets.

@jacquesbh
Created March 6, 2014 15:56
Show Gist options
  • Save jacquesbh/9392806 to your computer and use it in GitHub Desktop.
Save jacquesbh/9392806 to your computer and use it in GitHub Desktop.
/*
* Dans un test j'ai ça : var ret = this.login(customer_email, customer_password);
* Dans un pre.js j'ai la méthode suivante :
*/
casper.login = function(username, password) {
this.thenOpen(url_customer_account_login, function() {
utils.dump('foo');
this.fill('form#login-form', {
'login[username]': (username ? username : login_user_username),
'login[password]': (password ? password : login_user_password)
}, true);
}).then(function() {
utils.dump('bar');
// Ici "foo" vaut un boolean qui me permet de savoir si le login a réussi ou non.
var foo = this.exists('.customer-account-index');
});
utils.dump('baz');
// Ici j'aimerai retourner un bool qui indique si le mec est connecté ou non
return this;
};
@n1k0
Copy link

n1k0 commented Mar 6, 2014

D'une façon générale il faut éviter d'avoir des tests dépendants de branches différentes de navigation ; il vaut mieux écrire un test distinct par contexte d'utilisation (ici deux tests, un pour anthentification réussie, un autre pour auth échouée)

@jacquesbh
Copy link
Author

Du genre passer par quelque chose comme ça ? (en gros)

// Login the user
casper.login = function(username, password, callbacks) {

    return this.thenOpen(url_customer_account_login, function() {

        utils.dump('foo');

        this.fill('form#login-form', {
            'login[username]': (username ? username : login_user_username),
            'login[password]': (password ? password : login_user_password)
        }, true);

    }).then(function() {

        utils.dump('bar');

        // Ici "foo" vaut un boolean qui me permet de savoir si le login a réussi ou non.
        if (this.exists('.customer-account-index')) {
            if (callbacks.onSuccess) {
                callbacks.onSuccess();
            }
        } else {
            if (callbacks.onFailure) {
                callbacks.onFailure();
            }
        }

    });

};

Edit: En fait c'est surtout que j'ai des tests de partout et parfois l'utilisateur enregistré, que je supprime, n'a pas été supprimé lors des précédents tests qui étaient en FAIL. Donc je tente juste ici de faire ce qu'il faut pour supprimer ou créer si je n'ai pas, afin de continuer... sans erreur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment