Best JavaScript code snippet using stryker-parent
logger_spec.js
Source:logger_spec.js  
1"use strict";2define(['lib/component', 'lib/debug'], function(defineComponent, debug) {3  var instance;4  var Component;5  var div = $('<div class="myDiv"></div>').appendTo('body')[0];6  var span = $('<span class="mySpan"></span>').appendTo('body')[0];7  describe('(Core) logger', function () {8    beforeEach(function () {9      debug.enable(true);10      debug.events.logAll();11      Component = (function () {12        return defineComponent(function() {13          this.handler = function() {};14        });15      })();16      instance = (new Component).initialize(div);17    });18    afterEach(function () {19      debug.enable(false);20      debug.events.logNone();21      Component.teardownAll();22    });23    describe('trigger logging', function () {24      it('logs trigger for default node', function () {25        spyOn(console, 'info');26        instance.trigger('click');27        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', '\'div.myDiv\'', '');28      });29      it('logs trigger for custom node', function () {30        spyOn(console, 'info');31        instance.trigger('document', 'click');32        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', 'document', '');33      });34      it('logs trigger with payload', function () {35        var data = {a:2};36        spyOn(console, 'info');37        instance.trigger('click', data);38        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', data, '\'div.myDiv\'', '');39      });40      it('logs trigger with event object', function () {41        spyOn(console, 'info');42        instance.trigger({type:'click'});43        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', '\'div.myDiv\'', '');44      });45      it('logs trigger for custom node with event object', function () {46        spyOn(console, 'info');47        instance.trigger('document', {type:'click'});48        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', 'document', '');49      });50      it('logs trigger with event object and payload', function () {51        var data = {a:2};52        spyOn(console, 'info');53        instance.trigger({type:'click'}, data);54        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', data, '\'div.myDiv\'', '');55      });56      it('logs trigger for custom node with event object and payload', function () {57        var data = {a:2};58        spyOn(console, 'info');59        instance.trigger('document', {type:'click'}, data);60        expect(console.info).toHaveBeenCalledWith('->', 'trigger', '[click]', data, 'document', '');61      });62    });63    describe('on logging', function () {64      it('logs on events for default node', function () {65        spyOn(console, 'info');66        instance.on('start', instance.handler);67        expect(console.info).toHaveBeenCalledWith('<-', 'on', '[start]', '\'div.myDiv\'', '');68      });69      it('logs on events for custom node', function () {70        spyOn(console, 'info');71        instance.on('body', 'start', instance.handler);72        expect(console.info).toHaveBeenCalledWith('<-', 'on', '[start]', 'body', '');73      });74    });75    describe('off logging', function () {76      it('logs off events for default node and no handler', function () {77        spyOn(console, 'info');78        instance.off('start');79        expect(console.info).toHaveBeenCalledWith('x ', 'off', '[start]', '\'div.myDiv\'', '');80      });81      it('logs off events for default node with handler', function () {82        spyOn(console, 'info');83        instance.off('start', instance.handler);84        expect(console.info).toHaveBeenCalledWith('x ', 'off', '[start]', '\'div.myDiv\'', '');85      });86      it('logs off events for custom node with handler', function () {87        spyOn(console, 'info');88        instance.off('.mySpan', 'start', instance.handler);89        expect(console.info).toHaveBeenCalledWith('x ', 'off', '[start]', '.mySpan', '');90      });91    });92    describe('log filters', function () {93      it('only logs filtered actions', function () {94        debug.events.logByAction('on', 'off');95        spyOn(console, 'info');96        instance.trigger('click');97        expect(console.info).not.toHaveBeenCalled();98        console.info.isSpy = false;99        spyOn(console, 'info');100        instance.on('click', instance.handler);101        expect(console.info).toHaveBeenCalled();102        console.info.isSpy = false;103        spyOn(console, 'info');104        instance.off('click', instance.handler);105        expect(console.info).toHaveBeenCalled();106      });107      it('only logs filtered event names', function () {108        debug.events.logByName('click', 'clack');109        spyOn(console, 'info');110        instance.trigger('click');111        expect(console.info).toHaveBeenCalled();112        console.info.isSpy = false;113        spyOn(console, 'info');114        instance.on('clack', instance.handler);115        expect(console.info).toHaveBeenCalled();116        console.info.isSpy = false;117        spyOn(console, 'info');118        instance.off('cluck', instance.handler);119        expect(console.info).not.toHaveBeenCalled();120      });121      it('only logs filtered event objects', function () {122        debug.events.logByName('click', 'clack');123        spyOn(console, 'info');124        instance.trigger({type:'click'});125        expect(console.info).toHaveBeenCalled();126        console.info.isSpy = false;127        spyOn(console, 'info');128        instance.on({type:'clack'}, instance.handler);129        expect(console.info).toHaveBeenCalled();130        console.info.isSpy = false;131        spyOn(console, 'info');132        instance.off({type:'cluck'}, instance.handler);133        expect(console.info).not.toHaveBeenCalled();134      });135      it('logs nothing when filter set to none', function () {136        debug.events.logNone();137        spyOn(console, 'info');138        instance.trigger('click');139        expect(console.info).not.toHaveBeenCalled();140        console.info.isSpy = false;141        spyOn(console, 'info');142        instance.on('click', instance.handler);143        expect(console.info).not.toHaveBeenCalled();144        console.info.isSpy = false;145        spyOn(console, 'info');146        instance.off('click', instance.handler);147        expect(console.info).not.toHaveBeenCalled();148        console.info.isSpy = false;149        spyOn(console, 'info');150        instance.trigger('click');151        expect(console.info).not.toHaveBeenCalled();152        console.info.isSpy = false;153        spyOn(console, 'info');154        instance.on('clack', instance.handler);155        expect(console.info).not.toHaveBeenCalled();156        console.info.isSpy = false;157        spyOn(console, 'info');158        instance.off('cluck', instance.handler);159        expect(console.info).not.toHaveBeenCalled();160      });161    });162  });...onlineLogger.js
Source:onlineLogger.js  
1var vk;2let lastOnline = {},3	appsName = {},4	consoleLog = true;5const authPlatform = {6	'mobile': 1,7	'iphone': 2,8	'ipad': 3,9	'android': 4,10	'wphone': 5,11	'windows': 6,12	'web': 7,13	'standalone': 8,14};15function tryLoad() {16	if(_.izCapData.loaded) {17		lastOnline = _.izCapData.get("pl:onlineLogger:lastOnline", lastOnline);18		appsName = _.izCapData.get("pl:onlineLogger:appsName", appsName);19		consoleLog = _.izCapData.get("pl:onlineLogger:consoleLog", consoleLog);20		21		_.con("User DATA Loaded [onlineLogger]", "cyan");22	}23	else24		_.izCapData.addLoad(tryLoad)25}26var rl = _.setLine((line) => {27	switch(line.trim()) {28		case 'hh':29			_.ccon("-- onlineLogger --", "red");30			_.ccon("onlinelog	- set state console log online");31			break;32		case 'onlinelog':33		case 'logonline':34			_.rl.question("Console log online users status. (Current state: O"+(consoleLog? "N": "FF")+") (y/n/other toggle) [toggle]: ", (data) => {35				consoleLog = (data == "y" || data == "Y")? true:36							(data == "n" || data == "N")? false:37							(data == "toggle" || data=="")? !consoleLog: consoleLog;38				_.con("consoleLog state: O"+(consoleLog? "N": "FF"));39				_.izCapData.set("pl:onlineLogger:consoleLog", consoleLog).save(false, false);40			});41			break;42	}43});44module.exports = (_vk, _h) => {45	vk = _vk;46	let lp = _vk.updates;47	48	tryLoad();49	/*50	51		СÑавнимаÑÑ Ð¿Ð¾Ñледнее вÑемÑÑ Ð¾Ð½Ð»Ð°Ð¹Ð½Ð° и оÑÑлайна52		ÐÑÑиÑлиÑÑ ÑеÑ
, кÑо ÑÐ·Ð°ÐµÑ "недоневидимкÑ"53		54		... ззÑ
 заÑем ÑÑо55	56	*/ 57	lp.on('user_online', async (context, next) => {58		const { userId, platformName } = context;59		let uLO = lastOnline[userId];60		if(lastOnline[userId] == undefined) {61			uLO = lastOnline[userId] = {62				timeOn: _.getTime(),63				timeOff: 0,64				status: 1,	// Online65				isSpy: false,66				count: 0,67				app: 0,68				timeTGApp: 069			};70		}71		// ÐÑли app не полÑÑни поÑледнÑÑ Ð¿ÑовеÑка Ñже кÑлдаÑн, then...72		else if(uLO.app == 0 && (_.getTime() - uLO.timeTGApp > 60)) {73			if(platformName != "standalone") {74				try {75					let user = await _.users.getFast(userId)[0];76					if(user.online_app != undefined) {77						var appName = appsName[user.online_app] || "";78						// _.con("Getted user Application Online: ["+appName+"] - "+user.online_app, "yellow")79						uLO.app = user.online_app;80					}81				} catch(e) { }82			}83		}84		if(uLO.app > 0 && appsName[uLO.app] == undefined)85			getAppName(uLO.app);86		uLO.timeOn = _.getTime();87		var lastStatus = uLO.status;88		uLO.status = authPlatform[platformName];89		_.izCapData.set("pl:onlineLogger:lastOnline", lastOnline);90		91		try {92			let user = await _.users.get(userId);93			var status = user.status,94				fullName = user.first_name+" "+user.last_name;95			var cApp = uLO.app,96				subApp = (cApp>0?(" <app ("+cApp+") "+((appsName[cApp] != undefined)?"["+appsName[cApp]+"]> ":"> ")):"");97			_.izQ.RecOnline(userId, authPlatform[platformName], false, fullName, subApp+status )98			if( !uLO.isSpy && (lastStatus != -2 || _.getTime() - uLO.timeOff > 10))99				consoleLog && _.con(fullName+" ["+userId+"] user Online "+platformName+" "+subApp, "green");100			else101				consoleLog && _.con(fullName+" ["+userId+"] user Online (SPY) "+platformName+subApp, "grey");102		} catch(e) { }103		await next();104	})105	.on('user_offline', async (context, next) => {106		const { userId, isSelfExit } = context;107		let uLO = lastOnline[userId];108		if(lastOnline[userId] == undefined) {109			uLO = lastOnline[userId] = {110				timeOn: 0,111				timeOff: _.getTime(),112				status: isSelfExit?-2:-1,	// Exit | AFK113				isSpy: false,114				count: 0,115				app: 0116			};117		}118		// ÐÑли бÑл онлайн и менÑÑе или = 9 second, then...119		else if(isNowSpy(userId)) {120			121			if(uLO.count < 3) {122				uLO.count++;123			}124			else if(!uLO.isSpy) {125				uLO.isSpy = true;126				consoleLog && _.con("Set SPY diagnose", "yellow")127			}128		}129		else if(_.getTime() - uLO.timeOn > 360) {130			// СбÑÐ¾Ñ Ð¸Ð½ÑÑ, Ñак, на вÑÑк ÑлÑÑай131			if(uLO.isSpy) {132				uLO.isSpy = false;133				consoleLog && _.con("UNSet SPY diagnose...", "yellow")134			}135			uLO.count = 0;136			uLO.app = 0;137		}138		uLO.timeOff = _.getTime();139		uLO.status = isSelfExit?-2:-1;140		if(!isSelfExit && uLO.isSpy)141			uLO.isSpy = false;142		_.izCapData.set("pl:onlineLogger:lastOnline", lastOnline);143		try {144			let user = await _.users.get(userId);145			var status = user.status,146				fullName = user.first_name+" "+user.last_name;147			var zz = isSelfExit?-2:-1;148			_.izQ.RecOnline(userId, zz, false, fullName, status);149			if(!isSelfExit || (uLO.timeOn - uLO.timeOff > 9) || _.getTime() - uLO.timeOn > 15)150				consoleLog && _.con(fullName+" ["+userId+"] user Offnline "+(isSelfExit?"EXIT":"AFK"), "red");151		} catch(e) { }152		await next();153	})154};155async function getAppName(appId) {156	try {157		let data = vk.api.call('apps.get', {158			app_id: appId159		});160		data = (data.count > 0) ? data.items[0] : false;161		162		if(!data)163			return consoleLog && _.con("Error get app info", true), false;164		if(data.title != undefined) {165			if(consoleLog)166				_.con("App("+appId+") title ["+data.title+"]", "yellow");167			168			{169				appsName[appId] = data.title;170				_.izCapData.set("pl:onlineLogger:appsName", appsName);171			}172			return data.title;173			174		}175	} catch(error) {  console.error(error); }176}177function isNowSpy(user) {178	var pastTense = _.getTime() - lastOnline[user].timeOn;179	return (lastOnline[user].status > 0 && pastTense <= 9);...PlayerIdentityReveal.component.js
Source:PlayerIdentityReveal.component.js  
1import React, { Component } from 'react';2import PropTypes from 'prop-types';3import {4    ActionButton,5    Text,6    PlayerCard,7    Checkbox,8    StartGameCountdown,9} from 'components';10import { View } from 'react-native';11import { createCommaSentenceFromArray } from 'helpers';12import styles from './PlayerIdentityReveal.styles';13export default class PlayerIdentityReveal extends Component {14    static propTypes = {15        userId: PropTypes.string.isRequired,16        onConfirm: PropTypes.func.isRequired,17        isSpy: PropTypes.bool.isRequired,18        spies: PropTypes.arrayOf(19            PropTypes.shape({20                id: PropTypes.string.isRequired,21                name: PropTypes.string.isRequired,22            }),23        ).isRequired,24    };25    startingCountdown = 3;26    state = {27        countdownCount: 3,28        showingIdentity: false,29        confirmedAlone: false,30    };31    componentDidMount() {32        let iterations = 0;33        const countDown = setInterval(() => {34            this.setState(({ countdownCount }) => ({35                countdownCount: (countdownCount -= 1),36            }));37            iterations += 1;38            if (iterations >= this.startingCountdown) {39                clearInterval(countDown);40            }41        }, 1000);42    }43    showIdentity = () => {44        this.setState({45            showingIdentity: true,46        });47    };48    onConfirmAloneToggle = (confirmedAlone) => {49        this.setState({50            confirmedAlone,51        });52    };53    render() {54        const { isSpy, spies, onConfirm, userId } = this.props;55        const { showingIdentity, confirmedAlone, countdownCount } = this.state;56        const otherSpies = spies57            .filter(({ id }) => id !== userId)58            .map(({ name }) => name);59        let content = null;60        if (showingIdentity) {61            const identityText = isSpy ? `You're a spy!` : `You're an ally!`;62            let spiesText =63                isSpy &&64                `The other spies youâre working with are ${createCommaSentenceFromArray(65                    otherSpies,66                )}`;67            if (otherSpies.length === 1) {68                spiesText = `${69                    otherSpies[0]70                } is the other spy you are working with.`;71            }72            const spiesTextEl = spiesText && (73                <Text style={styles.spiesText}>{spiesText}</Text>74            );75            content = (76                <View>77                    <Text style={styles.title}>{identityText}</Text>78                    {spiesTextEl}79                    <View style={styles.identityCard}>80                        <PlayerCard isSpy={isSpy} />81                    </View>82                    <ActionButton onPress={onConfirm}>Got It!</ActionButton>83                </View>84            );85        } else if (countdownCount) {86            content = <StartGameCountdown count={countdownCount} />;87        } else {88            content = (89                <View>90                    <Text style={styles.subtitle}>91                        Check the box to confirm youâre phone is hidden92                    </Text>93                    <View style={styles.aloneCheckbox}>94                        <Checkbox95                            checked={confirmedAlone}96                            label={`No players can see my phone`}97                            onValueChange={this.onConfirmAloneToggle}98                        />99                    </View>100                    <ActionButton101                        theme={`teal`}102                        onPress={this.showIdentity}103                        disabled={!confirmedAlone}104                    >105                        {`Reveal My Identity`}106                    </ActionButton>107                </View>108            );109        }110        return (111            <View style={styles.container}>112                <View style={styles.innerContainer}>{content}</View>113            </View>114        );115    }...index.js
Source:index.js  
1import React, {useLayoutEffect} from 'react';2import {useSelector} from 'react-redux';3import styled from 'styled-components';4import {StyleSheet, Dimensions, View} from 'react-native';5import {Icon} from 'react-native-elements';6import SvgUri from 'react-native-svg-uri';7import GradientButton from '../../shared/GradientButton';8const styles = StyleSheet.create({9  image: {10    justifyContent: 'center',11    position: 'absolute',12    top: 0,13    bottom: 0,14  },15  backgroundImage: {16    justifyContent: 'center',17    position: 'absolute',18    bottom: 0,19    right: '-50%',20  },21});22const Container = styled.View`23  flex: 1;24  justify-content: center;25  background-color: white;26  padding: 0 20px;27`;28const Content = styled.View`29  flex: 2;30  justify-content: center;31`;32const Card = styled.View`33  width: 100%;34  background-color: white;35  height: 100%;36  align-items: center;37  overflow: hidden;38  border-radius: 10px;39`;40const CardContainer = styled.View`41  align-self: center;42  height: 100%;43  width: 100%;44  max-width: 212px;45  max-height: 153px;46  box-shadow: 10px 10px 35px rgba(0, 0, 0, 0.2);47`;48const CardText = styled.Text`49  font-weight: bold;50  font-size: 20px;51  padding: 10px;52  margin: auto;53  color: ${({isSpy}) => (isSpy ? '#FF0000' : '#000')};54`;55const Header = styled.View`56  align-self: stretch;57  justify-content: center;58  height: 130px;59  flex: 1;60`;61const Title = styled.Text`62  font-weight: ${({isNormal}) => (isNormal ? 'normal' : 'bold')};63  color: ${({isSpy}) => (isSpy ? '#FF0000' : '#000')};64  font-size: 20px;65  line-height: 23px;66  text-align: center;67`;68const Footer = styled.View`69  flex: 1;70  align-items: center;71  justify-content: flex-start;72`;73const FooterText = styled.Text`74  margin: 0 0 21px 0;75  font-size: 16px;76  height: 18px;77`;78const windowWidth = Dimensions.get('window').width;79const RolesScreen = ({route, navigation}) => {80  const {slideId} = route.params;81  const isLastSlide = useSelector(82    (state) => state.roles.slides[state.roles.slides.length - 1].id === slideId,83  );84  const slide = useSelector((state) =>85    state.roles.slides.find((currentSlide) => currentSlide.id === slideId),86  );87  useLayoutEffect(() => {88    navigation.setOptions({89      headerLeft: () => (90        <View style={{paddingLeft: 30}}>91          <Icon92            name="close"93            label="ÐгÑа"94            onPress={() => navigation.navigate('ÐгÑа')}95          />96        </View>97      ),98    });99  }, [navigation]);100  return (101    <Container>102      <Header>103        <Title isSpy={slide.isSpy} isNormal={slide.location || slide.isSpy}>104          {slide.title}105        </Title>106      </Header>107      <Content>108        {slide.backgroundImage && (109          <SvgUri110            style={styles.backgroundImage}111            width={windowWidth}112            source={slide.backgroundImage}113          />114        )}115        <CardContainer>116          <Card>117            <CardText isSpy={slide.isSpy}>{slide.location}</CardText>118            {slide.image && (119              <SvgUri120                style={styles.image}121                width={windowWidth}122                source={slide.image}123              />124            )}125          </Card>126        </CardContainer>127      </Content>128      <Footer>129        <FooterText>{slide.additionalText}</FooterText>130        <GradientButton131          onPress={() => {132            isLastSlide133              ? navigation.navigate('ÐÑемÑ')134              : navigation.navigate('Роли', {135                  slideId: slideId + 1,136                });137          }}138          title={slide.buttonText}139        />140      </Footer>141    </Container>142  );143};...spy-all.spec.js
Source:spy-all.spec.js  
...8      foo () {},9      bar () {}10    }11    jasmine.spyAll(obj)12    expect(jasmine.isSpy(obj.foo)).toBeTruthy()13    expect(jasmine.isSpy(obj.bar)).toBeTruthy()14  })15  if (Object.getOwnPropertyNames) {16    it('should spy all methods with non-enumerable writable property', () => {17      const obj = new Klass()18      Object.defineProperty(obj, 'nonEnumerableProperty', {19        value: () => {},20        enumerable: false,21        writable: true22      })23      expect(obj.nonEnumerableProperty).toBeDefined()24      expect(jasmine.isSpy(obj.nonEnumerableProperty)).toBeFalsy()25      jasmine.spyAll(obj)26      expect(jasmine.isSpy(obj.nonEnumerableProperty)).toBeTruthy()27    })28    it('should not try to spy non-enumerable methods and non writable property', () => {29      const obj = new Klass()30      Object.defineProperty(obj, 'nonEnumerableProperty', {31        value: () => {},32        enumerable: false,33        writable: false34      })35      expect(obj.nonEnumerableProperty).toBeDefined()36      expect(jasmine.isSpy(obj.nonEnumerableProperty)).toBeFalsy()37      jasmine.spyAll(obj)38      expect(jasmine.isSpy(obj.nonEnumerableProperty)).toBeFalsy()39    })40  }41  it('should spy all methods except bar', () => {42    const obj = {43      foo () {},44      bar () {}45    }46    jasmine.spyAllExcept(obj, 'bar')47    expect(jasmine.isSpy(obj.foo)).toBeTruthy()48    expect(jasmine.isSpy(obj.bar)).toBeFalsy()49  })50  it('should spy all methods except foo and bar', () => {51    const obj = new Klass()52    jasmine.spyAllExcept(obj, ['foo', 'bar'])53    expect(jasmine.isSpy(obj.foo)).toBeFalsy()54    expect(jasmine.isSpy(obj.bar)).toBeFalsy()55  })56  it('should spy each methods with one argument', () => {57    const obj = {58      foo () {},59      bar () {}60    }61    jasmine.spyEach(obj, 'bar')62    expect(jasmine.isSpy(obj.foo)).toBeFalsy()63    expect(jasmine.isSpy(obj.bar)).toBeTruthy()64  })65  it('should spy each methods', () => {66    const obj = {67      foo () {},68      bar () {},69      baz () {}70    }71    jasmine.spyEach(obj, ['bar', 'foo'])72    expect(jasmine.isSpy(obj.foo)).toBeTruthy()73    expect(jasmine.isSpy(obj.bar)).toBeTruthy()74  })75  it('should not spy a method that is already a spy', () => {76    const obj = {77      foo () {},78      bar () {}79    }80    spyOn(obj, 'foo').and.returnValue(true)81    jasmine.spyAll(obj)82    expect(jasmine.isSpy(obj.foo)).toBeTruthy()83    expect(jasmine.isSpy(obj.bar)).toBeTruthy()84  })85  it('should spy class methods', () => {86    jasmine.spyAll(Klass)87    expect(jasmine.isSpy(Klass.prototype.foo)).toBeTruthy()88    expect(jasmine.isSpy(Klass.prototype.bar)).toBeTruthy()89  })90  it('should spy babel transformed instance methods', () => {91    const instance = new NonLooseClass()92    jasmine.spyAll(instance)93    expect(jasmine.isSpy(instance.methodOne)).toBeTruthy()94    expect(jasmine.isSpy(instance.methodTwo)).toBeTruthy()95  })...spy-all-except.spec.js
Source:spy-all-except.spec.js  
...8      bar () {},9      baz () {}10    }11    spyAllExcept(o, 'foo')12    expect(isSpy(o.foo)).toBe(false)13    expect(isSpy(o.bar)).toBe(true)14    expect(isSpy(o.baz)).toBe(true)15    expect(o.id).toBe(1)16  })17  it('should spy methods of object except ones', () => {18    const o = {19      id: 1,20      foo () {},21      bar () {},22      baz () {}23    }24    spyAllExcept(o, ['foo', 'bar'])25    expect(isSpy(o.foo)).toBe(false)26    expect(isSpy(o.bar)).toBe(false)27    expect(isSpy(o.baz)).toBe(true)28    expect(o.id).toBe(1)29  })30  it('should spy all if passed exceptions do not exist', () => {31    const o = {32      id: 1,33      foo () {},34      bar () {},35      baz () {}36    }37    spyAllExcept(o, 'nothing')38    expect(isSpy(o.foo)).toBe(true)39    expect(isSpy(o.bar)).toBe(true)40    expect(isSpy(o.baz)).toBe(true)41    expect(o.id).toBe(1)42  })...spy-each.spec.js
Source:spy-each.spec.js  
...7      bar () {},8      baz () {}9    }10    spyEach(o, 'foo')11    expect(jasmine.isSpy(o.foo)).toBe(true)12    expect(jasmine.isSpy(o.bar)).toBe(false)13    expect(jasmine.isSpy(o.baz)).toBe(false)14    expect(o.id).toBe(1)15  })16  it('should spy methods of object', () => {17    const o = {18      id: 1,19      foo () {},20      bar () {},21      baz () {}22    }23    spyEach(o, ['foo', 'bar'])24    expect(jasmine.isSpy(o.foo)).toBe(true)25    expect(jasmine.isSpy(o.bar)).toBe(true)26    expect(jasmine.isSpy(o.baz)).toBe(false)27    expect(o.id).toBe(1)28  })...PlayerCard.component.js
Source:PlayerCard.component.js  
1import React, { PureComponent } from 'react';2import { Image } from 'react-native';3import PropTypes from 'prop-types';4const spyCard = require(`assets/images/spy-card.png`);5const allyCard = require(`assets/images/ally-card.png`);6import styles from './PlayerCard.styles';7export default class PlayerCard extends PureComponent {8    static propTypes = {9        isSpy: PropTypes.bool.isRequired,10    };11    static defaultProps = {12        isSpy: false,13    };14    render() {15        const { isSpy } = this.props;16        return (17            <Image source={isSpy ? spyCard : allyCard} style={styles.card} />18        );19    }...Using AI Code Generation
1import { isSpy } from 'stryker-parent';2import { isSpy } from 'stryker-parent';3import { isSpy } from 'stryker-parent';4import { isSpy } from 'stryker-parent';5import { isSpy } from 'stryker-parent';6import { isSpy } from 'stryker-parent';7import { isSpy } from 'stryker-parent';8import { isSpy } from 'stryker-parent';9import { isSpy } from 'stryker-parent';10import { isSpy } from 'stryker-parent';11import { isSpy } from 'stryker-parent';12import { isSpy } from 'stryker-parent';13import { isSpy } from 'stryker-parent';14import { isSpy } from 'stryker-parent';15import { isSpy } from 'stryker-parent';16import { isSpy } from 'stryker-parent';17import { isSpy } from 'stryker-parent';18import { isSpy } from 'stryker-parent';19import { isSpy } from 'stryker-parent';20import { isSpy } from 'stryker-parent';Using AI Code Generation
1var isSpy = require('stryker-parent').isSpy;2describe('test', function () {3  it('should be a spy', function () {4    var spy = sinon.spy();5    expect(isSpy(spy)).to.be.true;6  });7});8var isSpy = require('sinon').isSpy;9exports.isSpy = isSpy;10{11  "dependencies": {12  }13}14exports.isSpy = require('sinon').isSpy;Using AI Code Generation
1const { isSpy } = require('stryker-parent');2describe('isSpy', () => {3  it('should return true for spies', () => {4    const spy = sinon.spy();5    expect(isSpy(spy)).to.be.true;6  });7  it('should return false for non-spies', () => {8    expect(isSpy({})).to.be.false;9  });10});11module.exports = {12  isSpy: require('sinon').isSpy13};14{15}Using AI Code Generation
1var isSpy = require('stryker-parent').isSpy;2var sinon = require('sinon');3var obj = { foo: function() {} };4var spy = sinon.spy(obj, 'foo');5if (isSpy(spy)) {6    console.log('spy is a spy');7}8var isSpy = require('stryker-parent').isSpy;9var sinon = require('sinon');10var obj = { foo: function() {} };11var spy = sinon.spy(obj, 'foo');12if (isSpy(spy)) {13    console.log('spy is a spy');14}15var isSpy = require('stryker-parent').isSpy;16var sinon = require('sinon');17var obj = { foo: function() {} };18var spy = sinon.spy(obj, 'foo');19if (isSpy(spy)) {20    console.log('spy is a spy');21}22var isSpy = require('stryker-parent').isSpy;23var sinon = require('sinon');24var obj = { foo: function() {} };25var spy = sinon.spy(obj, 'foo');26if (isSpy(spy)) {27    console.log('spy is a spy');28}29var isSpy = require('stryker-parent').isSpy;30var sinon = require('sinon');31var obj = { foo: function() {} };32var spy = sinon.spy(obj, 'foo');33if (isSpy(spy)) {34    console.log('spy is a spy');35}36var isSpy = require('stryker-parent').isSpy;37var sinon = require('sinon');38var obj = { foo: function() {} };39var spy = sinon.spy(obj, 'foo');40if (isSpy(spy)) {41    console.log('spy is a spy');42}43var isSpy = require('stryker-parent').isSpy;44var sinon = require('Using AI Code Generation
1var isSpy = require('stryker-parent').isSpy;2var spy = sinon.spy();3var Module = require('module');4var originalRequire = Module.prototype.require;5Module.prototype.require = function (moduleName) {6  if (moduleName === 'sinon') {7    return sandbox.create();8  } else if (moduleName === 'log4js') {9    return loggingContext;10  } else {11    return originalRequire.apply(this, arguments);12  }13};14var requireHook = require('stryker-api/src/requireHook');15requireHook(this.sandbox, this.loggingContext);16var sinon = require('sinon');17var log4js = require('log4js');18var isSpy = require('stryker-parent').isSpy;19var spy = sinon.spy();Using AI Code Generation
1import {isSpy} from 'stryker-parent';2if (isSpy(someObject)) {3}4import {isSpy} from 'stryker-parent';5if (isSpy(someObject)) {6}7import strykerParent from 'stryker-parent';8if (strykerParent.isSpy(someObject)) {9}10import strykerParent from 'stryker-parent';11if (strykerParent.isSpy(someObject)) {12}13import * as strykerParent from 'stryker-parent';14strykerParent.isSpy(someObject);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!!
