Code Components

Re-using code is a very useful working method, saves time and energy when it comes to performing the same actions or any common action on each test, therefore when it needs an update or a fix, you only need to fix it in the script file itself.

Scripts can call the functions in the file using the po object statement.

Functions file:

module.exports = {
Login: function(username, password) {
web.type('id=userName',username);
web.type('id=password',password);
web.click('name=login');
web.assertText('id=firstHeading', 'Welcome ' + username);
}
}

it's also possible to use the ES6 arrow function and template literals

module.exports = {
Login: (username, password) => {
web.type('id=userName', username);
web.type('id=password', password);
web.click('name=login');
web.assertText('id=firstHeading', `Welcome ${username}`);
}
}

Script to run:

web.transaction('Opening browser and web-page');
web.init();
web.open('https://oxygenhq.org');
web.transaction('Logging in');
po.Login('User1', 'Password123');
web.click('id=button1');

In the above example , the script shall use the code it has inherited from a file called oxygen.po.js, it can contain many functions as you want and call it from any script you are running.