<div dir="ltr">Hello all,<div><br></div><div>earlier today we landed a patch in webmaker-auth and released version 1.0.3, which adds a new "testMode" option to the login experience. With this option set to "true", trying to sign in will let you fill in a random username and random password, and without ever hitting the login server be accepted and logged in as user "testuser". Note that this doesn't magically log you in when you click "sign in" on the client-facing pages, since that would require a lot more work in each app to bypass the modal windows etc. and make things really messy, but it does make it possible to automate the login in process for client testing with things like phantom and slimer without running additional webmaker components.</div><div><br></div><div>[How to use this in the project you're working on if not updated already]</div><div><br></div><div>you will typically have an app.js or server.js with code very similar to the following code:</div><div><br></div><div>...</div><div>var WebmakerAuth = require("webmaker-auth");<br></div><div>...</div><div><div>  var webmakerAuth = new WebmakerAuth({</div><div>    loginURL: env.get("APP_HOSTNAME"),</div><div>    authLoginURL: env.get("LOGINAPI"),</div><div>    loginHost: env.get("APP_HOSTNAME"),</div><div>    secretKey: env.get("SESSION_SECRET"),</div><div>    forceSSL: env.get("FORCE_SSL"),</div><div>    domain: env.get("COOKIE_DOMAIN"),</div><div>    allowCors: env.get("ALLOWED_CORS_DOMAINS") && env.get("ALLOWED_CORS_DOMAINS").split(" ")</div><div>  });</div></div><div>...</div><div><br></div><div>all you'll need to do to make use of the new code is to:</div><div><br></div><div>a) update webmaker-auth to at least v1.0.3 (we'll be pushing 1.0.3 it up to npm in a bit, hopefully by the time you read this mail that has been done), </div><div>b) as optional step, add an env var to your environment file that you're going to use to toggle test mode on or off, and then,</div><div>c) extend the WebmakerAuth contstructor in app.js/server.js with whether or not to run in test mode (if you don't, it'll do exactly the same as it was already doing):</div><div><br></div><div><div>  var webmakerAuth = new WebmakerAuth({</div><div>    ...</div><div>    testMode: env.get("USE_FAKE_LOGIN_FOR_THE_WIN")</div><div>  });</div></div><div><br></div><div>For dedicated test runner files, this isn't even necessary, since test runners tend to just want to run without needing external services, so in those you'd either hardcode the value to "true", or you just fix the process.env value by using something like the following code before requiring in the code that sets up the webmaker auth object:</div><div><br></div><div>process.env.USE_FAKE_LOGIN_FOR_THE_WIN = true;</div><div><br></div><div><br></div><div>That's it. Any questions, you know where the IRC channel is - happy testing!<br></div><div><br></div><div>- Pomax</div></div>