Best JavaScript code snippet using cavy
sign-in-test.js
Source:sign-in-test.js
...10 await visit("/");11 await click("header .login-button");12 assert.ok(exists(".login-modal"), "it shows the login modal");13 // Test invalid password first14 await fillIn("#login-account-name", "eviltrout");15 await fillIn("#login-account-password", "incorrect");16 await click(".modal-footer .btn-primary");17 assert.ok(exists("#modal-alert:visible"), "it displays the login error");18 assert.not(19 exists(".modal-footer .btn-primary:disabled"),20 "enables the login button"21 );22 // Use the correct password23 await fillIn("#login-account-password", "correct");24 await click(".modal-footer .btn-primary");25 assert.ok(26 exists(".modal-footer .btn-primary:disabled"),27 "disables the login button"28 );29 });30 test("sign in - not activated", async function (assert) {31 await visit("/");32 await click("header .login-button");33 assert.ok(exists(".login-modal"), "it shows the login modal");34 await fillIn("#login-account-name", "eviltrout");35 await fillIn("#login-account-password", "not-activated");36 await click(".modal-footer .btn-primary");37 assert.equal(38 queryAll(".modal-body b").text(),39 "<small>eviltrout@example.com</small>"40 );41 assert.ok(!exists(".modal-body small"), "it escapes the email address");42 await click(".modal-footer button.resend");43 assert.equal(44 queryAll(".modal-body b").text(),45 "<small>current@example.com</small>"46 );47 assert.ok(!exists(".modal-body small"), "it escapes the email address");48 });49 test("sign in - not activated - edit email", async function (assert) {50 await visit("/");51 await click("header .login-button");52 assert.ok(exists(".login-modal"), "it shows the login modal");53 await fillIn("#login-account-name", "eviltrout");54 await fillIn("#login-account-password", "not-activated-edit");55 await click(".modal-footer .btn-primary");56 await click(".modal-footer button.edit-email");57 assert.equal(queryAll(".activate-new-email").val(), "current@example.com");58 assert.equal(59 queryAll(".modal-footer .btn-primary:disabled").length,60 1,61 "must change email"62 );63 await fillIn(".activate-new-email", "different@example.com");64 assert.equal(queryAll(".modal-footer .btn-primary:disabled").length, 0);65 await click(".modal-footer .btn-primary");66 assert.equal(queryAll(".modal-body b").text(), "different@example.com");67 });68 skip("second factor", async function (assert) {69 await visit("/");70 await click("header .login-button");71 assert.ok(exists(".login-modal"), "it shows the login modal");72 await fillIn("#login-account-name", "eviltrout");73 await fillIn("#login-account-password", "need-second-factor");74 await click(".modal-footer .btn-primary");75 assert.not(exists("#modal-alert:visible"), "it hides the login error");76 assert.not(77 exists("#credentials:visible"),78 "it hides the username and password prompt"79 );80 assert.ok(81 exists("#second-factor:visible"),82 "it displays the second factor prompt"83 );84 assert.not(85 exists(".modal-footer .btn-primary:disabled"),86 "enables the login button"87 );88 await fillIn("#login-second-factor", "123456");89 await click(".modal-footer .btn-primary");90 assert.ok(91 exists(".modal-footer .btn-primary:disabled"),92 "disables the login button"93 );94 });95 skip("security key", async function (assert) {96 await visit("/");97 await click("header .login-button");98 assert.ok(exists(".login-modal"), "it shows the login modal");99 await fillIn("#login-account-name", "eviltrout");100 await fillIn("#login-account-password", "need-security-key");101 await click(".modal-footer .btn-primary");102 assert.not(exists("#modal-alert:visible"), "it hides the login error");103 assert.not(104 exists("#credentials:visible"),105 "it hides the username and password prompt"106 );107 assert.not(108 exists("#login-second-factor:visible"),109 "it does not display the second factor prompt"110 );111 assert.ok(112 exists("#security-key:visible"),113 "it shows the security key prompt"114 );115 assert.not(exists("#login-button:visible"), "hides the login button");116 });117 test("create account", async function (assert) {118 await visit("/");119 await click("header .sign-up-button");120 assert.ok(exists(".create-account"), "it shows the create account modal");121 await fillIn("#new-account-name", "Dr. Good Tuna");122 await fillIn("#new-account-password", "cool password bro");123 // without this double fill, field will sometimes being empty124 // got consistent repro by having browser search bar focused when starting test125 await fillIn("#new-account-email", "good.tuna@test.com");126 await fillIn("#new-account-email", "good.tuna@test.com");127 // Check username128 await fillIn("#new-account-username", "taken");129 assert.ok(130 exists("#username-validation.bad"),131 "the username validation is bad"132 );133 await click(".modal-footer .btn-primary");134 await fillIn("#new-account-username", "goodtuna");135 assert.ok(136 exists("#username-validation.good"),137 "the username validation is good"138 );139 await click(".modal-footer .btn-primary");140 assert.ok(141 exists(".modal-footer .btn-primary:disabled"),142 "create account is disabled"143 );144 });145 test("second factor backup - valid token", async function (assert) {146 await visit("/");147 await click("header .login-button");148 await fillIn("#login-account-name", "eviltrout");149 await fillIn("#login-account-password", "need-second-factor");150 await click(".modal-footer .btn-primary");151 await click(".login-modal .toggle-second-factor-method");152 await fillIn("#login-second-factor", "123456");153 await click(".modal-footer .btn-primary");154 assert.ok(155 exists(".modal-footer .btn-primary:disabled"),156 "it closes the modal when the code is valid"157 );158 });159 test("second factor backup - invalid token", async function (assert) {160 await visit("/");161 await click("header .login-button");162 await fillIn("#login-account-name", "eviltrout");163 await fillIn("#login-account-password", "need-second-factor");164 await click(".modal-footer .btn-primary");165 await click(".login-modal .toggle-second-factor-method");166 await fillIn("#login-second-factor", "something");167 await click(".modal-footer .btn-primary");168 assert.ok(169 exists("#modal-alert:visible"),170 "it shows an error when the code is invalid"171 );172 });...
setup.js
Source:setup.js
1var coreScripts = [2 'vle/node/fillin/FillinNode.js',3 'vle/node/fillin/fillinEvents.js'4];5var coreMinScripts = [6 'vle/node/fillin/fillin_core_min.js',7];8var studentVLEScripts = [9 scriptloader.jquerySrc,10 scriptloader.jqueryUISrc,11 'vle/jquery/js/jsonplugin.js',12 'vle/node/common/nodehelpers.js',13 'vle/node/fillin/textentryinteraction.js',14 'vle/node/fillin/fillinstate.js',15 'vle/node/fillin/fillin.js'16];17var authorScripts = [18 'vle/node/fillin/authorview_fillin.js'19];20var gradingScripts = [21 'vle/node/fillin/fillin.js',22 'vle/node/fillin/textentryinteraction.js',23 'vle/node/fillin/fillinstate.js'24];25var dependencies = [26 {child:"vle/node/fillin/FillinNode.js", parent:["vle/node/Node.js"]}27];28var css = [29 scriptloader.jqueryUICss,30 "vle/node/common/css/htmlAssessment.css",31 "vle/node/fillin/fillin.css"32];33var nodeClasses = [34 {nodeClass:'fillblank', nodeClassText:'Fill the Blank', icon:'node/fillin/icons/fillblank28.png'}35];36var nodeIconPath = 'node/fillin/icons/';37componentloader.addNodeIconPath('FillinNode', nodeIconPath);38scriptloader.addScriptToComponent('core', coreScripts);39scriptloader.addScriptToComponent('core_min', coreMinScripts);40scriptloader.addScriptToComponent('fillin', studentVLEScripts);41scriptloader.addScriptToComponent('author', authorScripts);42scriptloader.addScriptToComponent('studentwork', gradingScripts);43scriptloader.addScriptToComponent('studentwork_min', gradingScripts);44scriptloader.addDependencies(dependencies);45scriptloader.addCssToComponent('fillin', css);46componentloader.addNodeClasses('FillinNode', nodeClasses);47var nodeTemplateParams = [48 {49 nodeTemplateFilePath:'node/fillin/fillinTemplate.fi',50 nodeExtension:'fi'51 }52];53componentloader.addNodeTemplateParams('FillinNode', nodeTemplateParams);54//used to notify scriptloader that this script has finished loading55if(typeof eventManager != 'undefined'){56 eventManager.fire('scriptLoaded', 'vle/node/fillin/setup.js');...
fillinEvents.js
Source:fillinEvents.js
1/**2 * The drawingDispatcher catches events specific to authoring individual3 * draw node steps and delegates them to the appropriate functions for4 * this view.5 */6View.prototype.fillinDispatcher = function(type,args,obj){7 if(type=='fillinTextUpdated'){8 obj.FillinNode.fillinTextUpdated();9 } else if(type=='fillinCreateFillin'){10 obj.FillinNode.createFillin();11 } else if(type=='fillinRemoveFillin'){12 obj.FillinNode.removeFillin();13 } else if(type=='fillinClick'){14 obj.FillinNode.fillinClick(args[0], args[1]);15 } else if(type=='fillinChangeSelected'){16 obj.FillinNode.changeSelected(args[0]);17 } else if(type=='fillinAddNewAllowable'){18 obj.FillinNode.addNewAllowable(args[0]);19 } else if(type=='fillinEntryChanged'){20 obj.FillinNode.entryChanged(args[0]);21 } else if(type=='fillinRemoveAllowable'){22 obj.FillinNode.removeAllowable(args[0], args[1]);23 };24};25//this list of events26var events = [27 'fillinTextUpdated',28 'fillinCreateFillin',29 'fillinRemoveFillin',30 'fillinClick',31 'fillinChangeSelected',32 'fillinAddNewAllowable',33 'fillinEntryChanged',34 'fillinRemoveAllowable'35];36/*37 * add all the events to the vle so the vle will listen for these events38 * and call the dispatcher function when the event is fired39 */40for(var x=0; x<events.length; x++) {41 componentloader.addEvent(events[x], 'fillinDispatcher');42};43//used to notify scriptloader that this script has finished loading44if(typeof eventManager != 'undefined'){45 eventManager.fire('scriptLoaded', 'vle/node/fillin/fillinEvents.js');...
Using AI Code Generation
1const fillIn = require('cavy').fillIn;2const tap = require('cavy').tap;3const build = require('cavy').build;4const Tester = require('cavy').Tester;5const Spec = require('cavy').Spec;6const describe = require('cavy').describe;7const it = require('cavy').it;8const expect = require('cavy').expect;9const beforeEach = require('cavy').beforeEach;10const TextInput = require('react-native').TextInput;11const Text = require('react-native').Text;12const View = require('react-native').View;13const TouchableHighlight = require('react-native').TouchableHighlight;14const StyleSheet = require('react-native').StyleSheet;15const AppRegistry = require('react-native').AppRegistry;16const Component = require('react-native').Component;17const AppRegistry = require('react-native').AppRegistry;18const Component = require('react-native').Component;19const AppRegistry = require('react-native').AppRegistry;20const Component = require('react-native').Component;21const AppRegistry = require('react-native').AppRegistry;22const Component = require('react-native').Component;23const AppRegistry = require('react-native').AppRegistry;24const Component = require('react-native').Component;
Using AI Code Generation
1import { fillIn } from 'cavy';2const fillIn = require('cavy').fillIn;3const fillIn = require('cavy').fillIn;4import { fillIn } from 'cavy';5const fillIn = require('cavy').fillIn;6const fillIn = require('cavy').fillIn;7import { fillIn } from 'cavy';8const fillIn = require('cavy').fillIn;9const fillIn = require('cavy').fillIn;10import { fillIn } from 'cavy';11const fillIn = require('cavy').fillIn;12const fillIn = require('cavy').fillIn;13import { fillIn } from 'cavy';14const fillIn = require('cavy').fillIn;15const fillIn = require('cavy').fillIn;16import { fillIn } from 'cavy';17const fillIn = require('cavy').fillIn;18const fillIn = require('cavy').fillIn;19import { fillIn } from 'cavy';20const fillIn = require('cavy').fillIn;21const fillIn = require('cavy').fillIn;22import { fillIn } from 'cavy';
Using AI Code Generation
1const spec = async (test) => {2 await test('Fill in text input', async (t) => {3 await t.fillIn('input[type="text"]', 'John Doe');4 await t.fillIn('input[type="password"]', 'password');5 await t.press('button');6 });7};8export default spec;
Using AI Code Generation
1import {fillIn, focus} from 'cavy';2const fillIn = (testID, text) => {3 return fillIn(testID, text);4};5const focus = testID => {6 return focus(testID);7};8export {fillIn, focus};9import {fillIn, focus} from '../test';10test('should fill in the text', async () => {11 await focus('text-input');12 await fillIn('text-input', 'Hello cavy');13});14import {fillIn, focus} from '../test';15 onChangeText={text => this.setState({text})}16 value={this.state.text}17/>;
Using AI Code Generation
1const spec = require('./spec.js');2const { fillIn, focus, tap } = require('cavy');3describe('Example spec', function() {4 const textInput = 'textInput';5 const button = 'button';6 spec('it fills in the text input', async function() {7 await fillIn(textInput, 'Hello');8 await focus(textInput);9 await tap(button);10 });11});
Using AI Code Generation
1import { fillIn, focus, tap } from 'cavy';2import { expect } from 'chai';3import { describe, it } from 'mocha';4export default function(spec) {5 spec.describe('Test', function() {6 spec.it('Test', async function() {7 await focus(spec, 'input');8 await fillIn(spec, 'input', 'test');9 await tap(spec, 'button');10 });11 });12}13import TestSpec from './test';14describe('Test', function() {15 it('Test', function() {16 let spec = TestSpec(this);17 return spec.run();18 });19});20 at Object.fillIn (/Users/priyankasingh/Documents/ReactNative/ReactNativeProject/node_modules/cavy/lib/commands.js:70:13)21 at Object.<anonymous> (/Users/priyankasingh/Documents/ReactNative/ReactNativeProject/test.js:8:7)22 at Generator.next (<anonymous>)23 at new Promise (<anonymous>)24 at GeneratorFunctionPrototype.invoke [as _invoke] (native)25 at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (native)26 at step (/Users/priyankasingh/Documents/ReactNative/ReactNativeProject/test.js:7:71)27 at new Promise (<anonymous>)28 at GeneratorFunctionPrototype.invoke [as _invoke] (native)29 at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (native)30 at step (/Users/priyankasingh/Documents/ReactNative/ReactNativeProject/test.js:7:71)31 at new Promise (<anonymous>)
Using AI Code Generation
1import { fillIn, find, findComponent, focus, tap, waitFor } from 'cavy';2describe('Test Login', () => {3 beforeEach(async function () {4 await this.props.hooks.beforeEach();5 });6 it('should login', async function () {7 await fillIn(this, 'email', '
Using AI Code Generation
1import { fillIn } from 'cavy';2fillIn(this, 'input', '123');3import { fillIn } from 'cavy';4fillIn(this, 'input', '123');5import { tap } from 'cavy';6tap(this, 'input');7import { tap } from 'cavy';8tap(this, 'input');9import { press } from 'cavy';10press(this, 'input');11import { press } from 'cavy';12press(this, 'input');13import { swipe } from 'cavy';14swipe(this, 'input', 'right');15import { swipe } from 'cavy';16swipe(this, 'input', 'right');17import { clear } from 'cavy';18clear(this, 'input');19import { clear } from 'cavy';20clear(this, 'input');21import { scrollTo } from 'cavy';22scrollTo(this, 'input
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!