Best JavaScript code snippet using storybook-root
script.js
Source:script.js
1/β*button color*/β2$(".one").hover(function() {3 $(this).css("background-color", "#ffcf00");4}, function() {5 $(this).css("background-color", "#00cdff");6});7$(".two").mouseenter(function() {8 $(this).css("background-color", "#ffcf00");9});10$(".two").mouseleave(function() {11 $(this).css("background-color", "#00cdff");12});13/β* top button*/β14$(".bimi").hover(function() {15 $(this).css("background-color", "#9bacb6");16}, function() {17 $(this).css("background-color", "inherit");18});19$("#colorchange").dblclick(function() {20 $("body").toggleClass("green");21 $("body").toggleClass("purple");22 $("button").toggleClass("three");23 $(this).removeClass("three");24});25/β*button functions*/β26$(".play-again").click(function() {27 $(".end-message").hide();28 $(".entry").show();29 $(".story1").text("Yay, we're on the final stage! Let's do this!");30 $(".story2").text("");31 $(".toRoom").show();32});33$(".toRoom").click(function() {34 $(".story1").text("We're in a big room now, but... Oh my god!");35 $(".story2").text("There's a big ferocious beast to our right! Should we fight it?");36 $(".toRoom").hide();37 $(".decision1").show();38});39/β*decision 1*/β40$(".fight").click(function() {41 $(".story1").text("Let's do it! Should we use our sword our our magic wand?");42 $(".story2").text("");43 $(".decision1").hide();44 $(".decisionMS2").show();45});46$(".no-fight").click(function() {47 $(".story1").text("Okay, let's be peaceful. Hopefully the monster is as well.");48 $(".story2").text("Should we run away and hide or stay and hope it doesn't kill us?");49 $(".decisionP2").show();50 $(".decision1").hide();51});52/β*decision magic/βsword-2*/β53$(".sword").click(function() {54 $(".instructions").show();55 $(".instructions").text("(Double click the sword to pick it up!)");56 $(".story1").text("");57 $(".story2").text("");58 $(".story1").hide();59 $(".story2").hide();60 $(".decisionMS2").hide();61 $(".imgsword").show();62});63$(".no-sword").click(function() {64 $(".story1").text("Let's use our magic wand then!");65 $(".story2").text("Should we stun it or damage it?");66 $(".decisionMS2").hide();67 $(".decisionM3").show();68});69/β*MAGIC*/β70/β*decision magic-3*/β71$(".stun").click(function() {72 $(".instructions").show();73 $(".instructions").text("(Double click the wand to stun the monster!)");74 $(".story1").text("");75 $(".story2").text("");76 $(".story1").hide();77 $(".story2").hide();78 $(".decisionM3").hide();79 $(".wand").show();80});81$(".no-stun").click(function() {82 $(".story1").text("Uh oh, the spell wasn't enough! IT'S STILL MOVING, IT'S-");83 $(".story2").text("Our bodies have been ripped to shreds! :)");84 $(".end-message").show();85 $(".win-message").hide();86 $(".lose-message").show();87 $(".decisionM3").hide();88});89/β*wand*/β90$(".wand").dblclick(function() {91 $(".wand").fadeOut();92 $(".instructions").fadeOut();93 $(".star1").delay(500).fadeIn();94 $(".star1").delay(500).fadeOut();95 $(".star2").delay(2000).fadeIn();96 $(".star2").delay(500).fadeOut();97 $(".star3").delay(3500).fadeIn();98 $(".star3").delay(500).fadeOut();99 $(".story1").text("We've done it! The monster is stunned!");100 $(".story2").text("Now, should we run away? Or should we run towards it and finish it off?");101 $(".story1").delay(5000).fadeIn();102 $(".story2").delay(5000).fadeIn();103 $(".decisionM4").delay(5000).fadeIn();104});105/β*decision magic-4*/β106$(".runaway").click(function() {107 $(".story1").text("Quick! Before the monster catches up!");108 $(".story2").text("Should we go behind the column or towards the burning door?");109 $(".decisionM4").hide();110 $(".decisionM5").show();111});112$(".no-runaway").click(function() {113 $(".story1").text("We run towards it, but! IT'S UNSTUNNED AHHHHHHH");114 $(".story2").text("That was a dumb choice. Now we're dead. :(");115 $(".end-message").show();116 $(".win-message").hide();117 $(".lose-message").show();118 $(".decisionM4").hide();119});120/β*decision magic-5*/β121$(".column").click(function() {122 $(".story1").text("The monster isn't stupid. It saw us go behind the column.");123 $(".story2").text("The beast pounced on us and ripped us apart limb by limb!");124 $(".end-message").show();125 $(".win-message").hide();126 $(".lose-message").show();127 $(".decisionM5").hide();128});129$(".no-column").click(function() {130 $(".story1").text("When we reach the door, we see two power-ups, a half-burnt doll and a telescope.");131 $(".story2").text("Which item should we use?");132 $(".decisionM5").hide();133 $(".decisionM6").show();134});135/β*decision magic-6*/β136$(".fish").click(function() {137 $(".story1").text("We launch the flamin' fish into the monster!");138 $(".story2").text("The monster disintegrates into ashes.");139 $(".end-message").show();140 $(".win-message").show();141 $(".lose-message").hide();142 $(".decisionM6").hide();143});144$(".no-fish").click(function() {145 $(".story1").text("We peer into the future and see ourselves dying ");146 $(".story2").text("as we wasted time looking into the telescope.");147 $(".end-message").show();148 $(".win-message").hide();149 $(".lose-message").show();150 $(".decisionM6").hide();151});152/β*SWORD*/β153/β*sword image*/β154$(".imgsword").dblclick(function() {155 $(".imgsword").slideUp();156 $(".instructions").hide();157 $(".story1").text("Ok! Now, should we wait for the monster to come to us?");158 $(".story2").text("Or should we run up to it instead?");159 $(".story1").delay(500).fadeIn();160 $(".story2").delay(500).fadeIn();161 $(".decisionS3").delay(500).fadeIn();162});163/β*decision sword-3*/β164$(".stay").click(function() {165 $(".story1").text("We'll wait for it to come to us then.");166 $(".story2").text("The monster runs up and slaps the life out of us.");167 $(".end-message").show();168 $(".win-message").hide();169 $(".lose-message").show();170 $(".decisionS3").hide();171});172$(".no-stay").click(function() {173 $(".story1").text("We're right in front of it now.");174 $(".story2").text("Quick, should we go for its leg or neck?");175 $(".decisionS3").hide();176 $(".decisionS4").show();177});178/β*decision sword-4*/β179$(".leg").click(function() {180 $(".story1").text("Great! The monster is losing it's balance!");181 $(".story2").text("Now should we go for the neck or another leg?");182 $(".decisionS4").hide();183 $(".decisionS5").show();184});185$(".no-leg").click(function() {186 $(".story1").text("The monster sees us running towards it's neck.");187 $(".story2").text("It turns its head and gobbles us up instead. Yum.");188 $(".end-message").show();189 $(".win-message").hide();190 $(".lose-message").show();191 $(".decisionS4").hide();192});193/β*decision sword-5*/β194$(".neck").click(function() {195 $(".story1").text("We successfully sliced its head off!");196 $(".story2").text("I can see the exit now!");197 $(".end-message").show();198 $(".win-message").show();199 $(".lose-message").hide();200 $(".decisionS5").hide();201});202$(".no-neck").click(function() {203 $(".story1").text("We slice off another leg causing the monster to fall down.");204 $(".story2").text("Unfortunately, it fell on top of us. :(");205 $(".end-message").show();206 $(".win-message").hide();207 $(".lose-message").show();208 $(".decisionS5").hide();209});210/β*PEACEFUL*/β211/β*decision peaceful-2*/β212$(".hide").click(function() {213 $(".story1").text("Good idea. We don't know if it's hositle or not yet.");214 $(".story2").text("Let's hide first. Should we go left or right?");215 $(".decisionP2").hide();216 $(".decisionP3").show();217});218$(".no-hide").click(function() {219 $(".story1").text("Alrigh- AHHHHHHHHH BEHIND YOU!");220 $(".story2").text("We were mauled by the monster. :'(");221 $(".end-message").show();222 $(".win-message").hide();223 $(".lose-message").show();224 $(".decisionP2").hide();225});226/β*decision peaceful-3*/β227$(".left").click(function() {228 $(".story1").text("This wasn't the right choice! It was the left!");229 $(".story2").text("The monster follows you and bites your head off. :(");230 $(".end-message").show();231 $(".lose-message").show();232 $(".win-message").hide();233 $(".decisionP3").hide();234});235$(".no-left").click(function() {236 $(".story1").text("This was the right choice! I don't see the monster behind us.");237 $(".story2").text("Hey, there's book here. Why don't we check it out?");238 $(".decisionP3").hide();239 $(".continue").show();240});241/β*continue and image*/β242$(".continue").click(function() {243 $(".story1").text("");244 $(".story2").text("");245 $(".story1").hide();246 $(".story2").hide();247 $(".continue").hide();248 $(".closed-book").show();249 $(".instructions").text("Double click the item to open it!");250 $(".instructions").show();251});252$(".closed-book").dblclick(function() {253 $(".story1").text("The book opens and reveals a giant yellow door--the exit!");254 $(".story2").text("We can escape this dark place now!");255 $(".instructions").hide();256 $(".closed-book").hide();257 $(".open-book").delay(500).fadeIn();258 $(".open-book").delay(500).fadeOut();259 $(".story1").delay(2000).fadeIn();260 $(".story2").delay(2000).fadeIn();261 $(".end-message").delay(2000).fadeIn();262 $(".win-message").delay(2000).fadeIn();263 $(".lose-message").hide();...
StoryWin.ts
Source:StoryWin.ts
1/β*2 * @Author: zhoulanglang 3 * @Date: 2020-07-14 11:14:29 4 * @Last Modified by: zhoulanglang5 * @Last Modified time: 2020-07-17 21:02:496 */β7class StoryWin extends BaseEuiView {8 private img: eui.Image9 private arr1 = ["story2_00_png", "story2_01_png", "story2_03_png", 'story2_04_png', 'story2_06_png', 'story2_07_png', 'story2_09_png', 'story2_10_png', 'story2_12_png', 'story2_13_png', 'story2_15_png', 'story2_16_png', 'story2_18_png', 'story2_19_png', 'story2_21_png', 'story2_22_png', 'story2_24_png', 'story2_25_png', 'story2_27_png', 'story2_28_png', 'story2_30_png', 'story2_31_png', 'story2_33_png', 'story2_34_png',]10 private arr2 = ['story3_00_png', 'story3_02_png', 'story3_03_png', 'story3_05_png', 'story3_06_png', 'story3_08_png', 'story3_09_png', 'story3_11_png', 'story3_12_png', 'story3_14_png', 'story3_15_png', 'story3_17_png', 'story3_18_png', 'story3_20_png', 'story3_21_png', 'story3_23_png', 'story3_24_png', 'story3_26_png', 'story3_27_png', 'story3_29_png', 'story3_30_png', 'story3_32_png', 'story3_33_png', 'story3_35_png', 'story3_36_png', 'story3_38_png', 'story3_39_png', 'story3_41_png', 'story3_42_png', 'story3_44_png', 'story3_45_png', 'story3_47_png', 'story3_48_png']11 private arr3 = [12 'story4_00_png', 'story4_01_png', 'story4_02_png', 'story4_03_png', 'story4_04_png', 'story4_05_png', 'story4_06_png', 'story4_07_png', 'story4_08_png', 'story4_09_png', 'story4_10_png', 'story4_11_png', 'story4_12_png', 'story4_13_png', 'story4_14_png', 'story4_15_png', 'story4_16_png', 'story4_17_png', 'story4_18_png', 'story4_19_png', 'story4_20_png', 'story4_21_png', 'story4_22_png', 'story4_23_png', 'story4_24_png', 'story4_25_png', 'story4_26_png', 'story4_27_png', 'story4_28_png', 'story4_29_png', 'story4_30_png', 'story4_31_png', 'story4_32_png', 'story4_33_png', 'story4_34_png', 'story4_35_png', 'story4_36_png', 'story4_37_png', 'story4_38_png', 'story4_39_png', 'story4_40_png', 'story4_41_png', 'story4_42_png', 'story4_43_png', 'story4_44_png', 'story4_45_png', 'story4_46_png', 'story4_47_png', 'story4_48_png', 'story4_49_png', 'story4_50_png', 'story4_51_png', 'story4_52_png', 'story4_53_png', 'story4_54_png', 'story4_55_png', 'story4_56_png', 'story4_57_png', 'story4_58_png', 'story4_59_png', 'story4_60_png', 'story4_61_png', 'story4_62_png', 'story4_63_png', 'story4_64_png', 'story4_65_png', 'story4_66_png', 'story4_67_png', 'story4_68_png', 'story4_69_png', 'story4_70_png', 'story4_71_png', 'story4_72_png', 'story4_73_png', 'story4_74_png', 'story4_75_png'13 ]14 cur = 015 next = 016 callBack: Function17 public constructor() {18 super();19 this.skinName = 'StorySkin'20 }21 public open(...param: any[]): void {22 this.addTouchEvent(this.img, this.onClick);23 this.callBack = param[0]24 this.upView()25 }26 private async upView() {27 /β/β await RES.loadGroup('storyGroup')28 ViewManager.ins().close(LoadingUI)29 this.cur = 030 this.img.source = this.arr1[this.cur]31 TimerManager.ins().doTimer(1000 /β 8, 0, this.fun, this)32 }33 fun() {34 this.cur++35 if (this.cur >= this.arr1.length) {36 TimerManager.ins().remove(this.fun, this)37 return38 }39 this.img.source = this.arr1[this.cur]40 }41 fun2() {42 this.cur++43 if (this.cur >= this.arr2.length) {44 TimerManager.ins().remove(this.fun2, this)45 return46 }47 this.img.source = this.arr2[this.cur]48 }49 fun3() {50 this.cur++51 if (this.cur >= this.arr3.length) {52 return53 }54 this.img.source = this.arr3[this.cur]55 }56 end() {57 TimerManager.ins().removeAll(this)58 this.callBack && this.callBack()59 ViewManager.ins().close(this)60 RES.destroyRes('storyGroup')61 }62 public close(...param: any[]): void {63 this.callBack = null64 }65 private onClick(e: egret.TouchEvent): void {66 switch (e.currentTarget) {67 case this.img:68 if (this.next == 0) {69 if (this.cur >= this.arr1.length) {70 this.next = 171 this.cur = 072 this.img.source = this.arr2[this.cur]73 TimerManager.ins().doTimer(1000 /β 8, 0, this.fun2, this)74 }75 }76 else if (this.next == 1) {77 if (this.cur >= this.arr2.length) {78 this.next = 279 this.cur = 080 this.img.source = this.arr3[this.cur]81 TimerManager.ins().doTimer(1000 /β 8, 0, this.fun3, this)82 }83 }84 else if (this.next == 2) {85 if (this.cur >= this.arr3.length || this.cur >= 60) {86 let obj = { isFinish: true }87 CacheUtil.set(Constant.STORY_DATA, JSON.stringify(obj))88 this.end()89 }90 }91 break;92 }93 }94}95ViewManager.ins().reg(StoryWin, LayerManager.UI_Popup);...
index.js
Source:index.js
1import { equal } from 'assert'2import tehanu from 'tehanu'3import sort from '../βlib/βindex.js'4const test = tehanu('test/βindex.js')5test('exports a function', () => {6 equal(typeof sort, 'function')7})8test('sorts unnamed stories', () => {9 const story1 = [null, { kind: '', name: '' }]10 const story2 = [null, { kind: '', name: '' }]11 equal(sort(null, story1, story2), 0)12 equal(sort(null, story2, story1), 0)13})14test('sorts one unnamed and one named stories', () => {15 const story1 = [null, { kind: '', name: '' }]16 const story2 = [null, { kind: '', name: 'Story' }]17 equal(sort(null, story1, story2), -1)18 equal(sort(null, story2, story1), 1)19})20test('sorts one unnamed and one named stories with an explicit order', () => {21 const story1 = [null, { kind: '', name: '' }]22 const story2 = [null, { kind: '', name: 'Story' }]23 const order = { '': { story: {} } };24 equal(sort(order, story1, story2), 1)25 equal(sort(order, story2, story1), -1)26})27test('sorts without groups alphabetically without specific order', () => {28 const story1 = [null, { kind: '', name: 'Story1' }]29 const story2 = [null, { kind: '', name: 'Story2' }]30 equal(sort(null, story1, story2), -1)31 equal(sort(null, story2, story1), 1)32})33test('sorts without groups according to a specific order', () => {34 const story1 = [null, { kind: '', name: 'Story1' }]35 const story2 = [null, { kind: '', name: 'Story2' }]36 const order = { '': { story2: {}, story1: {} } };37 equal(sort(order, story1, story2), 1)38 equal(sort(order, story2, story1), -1)39})40test('sorts in a group alphabetically without specific order', () => {41 const story1 = [null, { kind: 'Test', name: 'Story1' }]42 const story2 = [null, { kind: 'Test', name: 'Story2' }]43 equal(sort(null, story1, story2), -1)44 equal(sort(null, story2, story1), 1)45})46test('sorts in a group according to a specific order', () => {47 const story1 = [null, { kind: 'Test', name: 'Story1' }]48 const story2 = [null, { kind: 'Test', name: 'Story2' }]49 const order = { test: { story2: {}, story1: {} } };50 equal(sort(order, story1, story2), 1)51 equal(sort(order, story2, story1), -1)52})53test('sorts groups at the second level', () => {54 const story1 = [null, { kind: 'First/βSecond1', name: 'Story' }]55 const story2 = [null, { kind: 'First/βSecond2', name: 'Story' }]56 const order = {57 first: {58 second2: {},59 second1: {}60 }61 };62 equal(sort(order, story1, story2), 1)63 equal(sort(order, story2, story1), -1)64})65test('sorts groups at the third level', () => {66 const story1 = [null, { kind: 'First/βSecond/βThird1', name: 'Story' }]67 const story2 = [null, { kind: 'First/βSecond/βThird2', name: 'Story' }]68 const order = {69 first: {70 second: {71 third2: {},72 third1: {}73 }74 }75 };76 equal(sort(order, story1, story2), 1)77 equal(sort(order, story2, story1), -1)78})79test('sorts stories at the third level', () => {80 const story1 = [null, { kind: 'First/βSecond', name: 'Story1' }]81 const story2 = [null, { kind: 'First/βSecond', name: 'Story2' }]82 const order = {83 first: {84 second: {85 story2: {},86 story1: {}87 }88 }89 };90 equal(sort(order, story1, story2), 1)91 equal(sort(order, story2, story1), -1)92})93test('sorts with a wildcard at the first level of groups', () => {94 const story1 = [null, { kind: 'Test', name: 'Story1' }]95 const story2 = [null, { kind: 'Test', name: 'Story2' }]96 const order = { '*': { story2: {}, story1: {} } };97 equal(sort(order, story1, story2), 1)98 equal(sort(order, story2, story1), -1)99})100test('sorts complex example', () => {101 const story1 = [null, { kind: 'Articles', name: 'Getting Started' }]102 const story2 = [null, { kind: 'Articles', name: 'Versioning' }]103 const story3 = [null, { kind: 'Components/βHeader', name: 'Collapsed' }]104 const story4 = [null, { kind: 'Components/βHeader', name: 'Default' }]105 const story5 = [null, { kind: 'Components/βHeader', name: 'Expanded' }]106 const story6 = [null, { kind: 'Elements/βButton', name: 'Active' }]107 const story7 = [null, { kind: 'Elements/βButton', name: 'Default' }]108 const story8 = [null, { kind: 'Elements/βLink', name: 'Active' }]109 const story9 = [null, { kind: 'Elements/βLink', name: 'Default' }]110 const order = {111 articles: {},112 elements: {113 '*': { default: null, },114 },115 components: {116 '*': { default: null, },117 },118 };119 equal(sort(order, story1, story2), -1)120 equal(sort(order, story1, story3), -1)121 equal(sort(order, story1, story6), -1)122 equal(sort(order, story2, story3), -1)123 equal(sort(order, story3, story4), 1)124 equal(sort(order, story4, story5), -1)125 equal(sort(order, story4, story7), 1)126 equal(sort(order, story5, story6), 1)127 equal(sort(order, story6, story7), 1)128 equal(sort(order, story6, story9), -1)129 equal(sort(order, story7, story8), -1)130 equal(sort(order, story8, story9), 1)...
Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/βreact';3import { action } from '@storybook/βaddon-actions';4import Button from './βButton';5storiesOf('Button', module)6 .add('with text', () => (7 <Button onClick={action('clicked')}>Hello Button</βButton>8 .add('with some emoji', () => (9 <Button onClick={action('clicked')}>π π π π―</βButton>10 ));11import { configure, addDecorator } from '@storybook/βreact';12import { withInfo } from '@storybook/βaddon-info';13const req = require.context('../βsrc', true, /β.stories.js$/β);14function loadStories() {15 req.keys().forEach(filename => req(filename));16}17addDecorator(withInfo);18configure(loadStories, module);19import React from 'react';20import { storiesOf } from '@storybook/βreact';21import { action } from '@storybook/βaddon-actions';22import { withNotes } from '@storybook/βaddon-notes';23import Button from './βButton';24storiesOf('Button', module)25 .add(26 withNotes('A very simple button')(() => (27 <Button onClick={action('clicked')}>Hello Button</βButton>28 .add(29 withNotes('A very simple button')(() => (30 <Button onClick={action('clicked')}>π π π π―</βButton>31 );32import React from 'react';33import { storiesOf } from '@storybook/βreact';34import { action } from '@storybook/βaddon-actions';35import { withNotes } from '@storybook/βaddon-notes';36import { withKnobs, text, boolean, number } from '@storybook/βaddon-knobs/βreact';37import Button from './βButton';38storiesOf('Button', module)39 .addDecorator(withKnobs)40 .add(41 withNotes('
Using AI Code Generation
1import story2 from 'storybook-root';2import { story1 } from 'storybook-root';3import { story3 } from 'storybook-root';4import { story4 } from 'storybook-root';5{6}7Import your stories into the `storybook-root.js` file. You can import them using the following methods:8import { importAll } from 'storybook-root';9importAll(require.context('../βsrc', true, /β\.stories\.js$/β));10import { importStory } from 'storybook-root';11importStory(require('../βsrc/βstories/βButton.stories.js'));12import { importStory } from 'storybook-root';13importStory(require('../βsrc/βstories/βButton.stories.js'), 'Primary');14import { importStory } from 'storybook-root';15importStory(require('../βsrc/βstories/βButton.stories.js'), 'default');16import { importStory } from 'storybook-root';17importStory(require('../βsrc/βstories/βButton.stories.js'), 'Primary', 'MyPrimaryStory');18import { importStory } from 'storybook-root';19importStory(require('../βsrc/βstories/βButton.stories.js'), 'default', 'MyDefaultStory');
Using AI Code Generation
1import { story2 } from "storybook-root";2export { story2 } from "./βstory2";3export const story2 = () => "story2";4module.exports = {5};6module.exports = {7};8module.exports = {9 {10 options: {11 },12 },13};14module.exports = {15 {16 options: {17 },18 },19};20import { root } from "storybook-root";21export { root } from "./βroot";22export const root = () => "root";23import { resolve } from "storybook-root";24export { resolve } from "./β
Using AI Code Generation
1import StorybookRoot from 'storybook-root';2import { storiesOf } from '@storybook/βreact';3import { withKnobs, text } from '@storybook/βaddon-knobs';4const story = storiesOf('Test', module);5story.addDecorator(withKnobs);6story.add('Test', () => {7 const label = text('Label', 'Hello World');8 return <StorybookRoot story2={label} /β>;9});10MIT Β© [Shubham Singh](
Using AI Code Generation
1const path = require('path');2const distDirectory = path.resolve(__dirname, 'dist');3const path = require('path');4const distDirectory = path.resolve(__dirname, './βdist');5const path = require('path');6const distDirectory = require.resolve('dist');7const path = require('path');8const distDirectory = require.resolve('./βdist');9const path = require('path');10const distDirectory = require.resolve('dist');11const path = require('path');12const distDirectory = require.resolve('./βdist');
Using AI Code Generation
1import { storiesOf } from 'storybook-root';2storiesOf('test', module).add('test story', () => <div>test</βdiv>);3module.exports = function override(config, env) {4 config.resolve.alias['storybook-root'] = require.resolve('storybook-root');5 return config;6};7 "scripts": {8 },9import { configure } from 'storybook-root';10configure(require.context('../βsrc', true, /β\.stories\.js$/β), module);11import { storiesOf } from 'storybook-root';12import MyComponent from './βMyComponent';13storiesOf('MyComponent', module).add('MyComponent story', () => <MyComponent /β>);
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!!