Best JavaScript code snippet using ng-mocks
userController.test.js
Source:userController.test.js
1jest.mock('../../../services/userService');2const controller = require('../../../controllers/userControllers');3const service = require('../../../services/userService');4const mockRequest = (body) => ({5 body6});7const mockResponse = () => {8 const res = {};9 res.status = jest.fn().mockReturnValue(res);10 res.json = jest.fn().mockReturnValue(res);11 return res;12};13describe('UserController', () => {14 describe('SignUp', () => {15 test('should return status 201 if user created successfully', () => {16 const req = mockRequest(17 {18 name: 'Peter',19 email: 'smith@mail.ru',20 password: 'jsmith'21 }22 );23 const res = mockResponse();24 const newUserData = {25 name: 'Peter',26 email: 'smith@mail.ru',27 password: 'jsmith'28 };29 const spySave = jest.spyOn(service, "save").mockImplementation((err, result) => {30 return result(expect.anything(), null)31 });32 controller.signup(req, res);33 expect(spySave).toHaveBeenCalledTimes(1);34 expect(spySave).toBeCalledWith(newUserData, expect.anything());35 expect(res.status).toHaveBeenCalledWith(201);36 expect(res.json).toHaveBeenCalledWith({37 success: true,38 message: 'User created!',39 userId: expect.anything()40 });41 spySave.mockClear();42 });43 test('should return status 500 if error from database', () => {44 const req = mockRequest(45 {46 name: 'Peter',47 email: 'smith@mail.ru',48 password: 'jsmith'49 }50 );51 const res = mockResponse();52 const spySave = jest.spyOn(service, "save").mockImplementation((err, result) => {53 return result(null, err);54 });55 controller.signup(req, res);56 expect(spySave).toHaveBeenCalledTimes(1);57 expect(res.status).toHaveBeenCalledWith(500);58 expect(res.json).toHaveBeenCalledWith({59 success: false,60 message: 'This email already exists.'61 });62 spySave.mockClear();63 });64 });65 describe('LogIn', () => {66 test('should return status 401 if email and password does not match', async () => {67 const req = mockRequest(68 {69 email: 'smith@mail.ru',70 password: 'jsmit'71 }72 );73 const res = mockResponse();74 const spyFind = jest.spyOn(service, "findOne").mockImplementation((error, results) => {75 return results(null, [76 {77 id: expect.anything(),78 name: "Peter",79 email: "smith@mail.ru",80 password: "$2b$10$Y/cjeKxQrb/QOSlIs41Cf.3HHtNiraeVePYo28po7x9WwuynTzBVm"81 }82 ]);83 });84 await controller.login(req, res);85 expect(spyFind).toHaveBeenCalledTimes(1);86 expect(res.status).toHaveBeenCalledWith(401);87 expect(res.json).toHaveBeenCalledWith({88 success: false,89 message: 'Email and password does not match'90 })91 spyFind.mockClear();92 });93 test('should return status 500 if authentication failed', async () => {94 const req = mockRequest(95 {96 email: 'smit@mail.ru',97 password: 'jsmith'98 }99 );100 const res = mockResponse();101 const spyFind = jest.spyOn(service, "findOne").mockImplementation((error, result) => {102 return result(error, []);103 });104 await controller.login(req, res);105 expect(spyFind).toHaveBeenCalledTimes(1);106 expect(res.status).toHaveBeenCalledWith(500);107 expect(res.json).toHaveBeenCalledWith({108 status: 'error',109 message: "Authentication failed."110 });111 spyFind.mockClear();112 });113 test('should return status 200 if user authenticated', async () => {114 const req = mockRequest(115 {116 email: 'smith@mail.ru',117 password: 'jsmith'118 }119 );120 const spyFind = jest.spyOn(service, "findOne").mockImplementation((error, results) => {121 return results(null, [122 {123 id: expect.anything(),124 name: "Peter",125 email: "smith@mail.ru",126 password: "$2b$10$Y/cjeKxQrb/QOSlIs41Cf.3HHtNiraeVePYo28po7x9WwuynTzBVm"127 }128 ]);129 });130 const res = mockResponse();131 await controller.login(req, res);132 expect(spyFind).toHaveBeenCalledWith(req.body.email, expect.anything());133 expect(spyFind).toHaveBeenCalledTimes(1);134 expect(res.status).toHaveBeenCalledWith(200);135 expect(res.json).toHaveBeenCalledWith({136 token: expect.anything(),137 expiresIn: 3600,138 userId: 1,139 userName: "Peter"140 });141 spyFind.mockClear();142 });143 });...
configurationdialog.spec.ts
Source:configurationdialog.spec.ts
1import { Button, IconButton, Input, ListItem, Radio, Select } from "@material-ui/core";2import AddCircle from "@material-ui/icons/AddCircle";3import { configure, mount } from "enzyme";4import { createElement as __ } from "react";5import * as React from "react";6import { ConfigurationDialog, ConfigurationDialog_Props_t } from "./index";7describe("Basic generalSettings dialog test", () => {8 const defaultProps: ConfigurationDialog_Props_t = {9 open: true,10 languages: {11 nl: "Nederlands",12 fr: "Français",13 en: "English",14 sp: "Espanol",15 },16 onSave: () => {17 },18 onClose: () => {19 },20 generalSettings: {21 language: "nl",22 },23 manageLayouts: {24 layouts: [{ name: "hello", value: "mama" }],25 currentLayout: "currentLayout",26 },27 language: "English",28 };29 it("dropdown contains preconfigured language", () => {30 const props: ConfigurationDialog_Props_t = defaultProps;31 const component = mount(__(ConfigurationDialog, props) as any);32 expect(component.find(Select)).toHaveProp("value", "nl");33 component.unmount();34 });35 it("onSave gets called", () => {36 const props: ConfigurationDialog_Props_t = defaultProps;37 const spySave = jest.spyOn(props, "onSave");38 const component = mount(__(ConfigurationDialog, props) as any);39 component.find(Button).filter(".configuration-dialog-done-button").simulate("click");40 expect(spySave).toHaveBeenCalledWith({ language: "nl" }, [{ name: "hello", value: "mama" }], undefined);41 component.unmount();42 });43 it("saving and switching layouts", () => {44 const props: ConfigurationDialog_Props_t = defaultProps;45 const spySave = jest.spyOn(props, "onSave");46 const component = mount(__(ConfigurationDialog, props) as any);47 component.find(Input).filter(".manage-layouts-input").prop("onChange")!({ target: { value: "newlayout" } } as React.ChangeEvent<HTMLInputElement>);48 component.find(AddCircle).filter(".save-current-layout").simulate("click");49 component.find(Button).filter(".configuration-dialog-done-button").simulate("click");50 expect(spySave).toHaveBeenCalledWith({ language: "nl" }, [{ name: "hello", value: "mama" }, { name: "newlayout", value: "currentLayout" }], "newlayout");51 spySave.mockReset();52 component.find(ListItem).filter(".layout-item-hello").find(Radio).simulate("click");53 component.find(Button).filter(".configuration-dialog-done-button").simulate("click");54 expect(spySave).toHaveBeenCalledWith({ language: "nl" }, [{ name: "hello", value: "mama" }, { name: "newlayout", value: "currentLayout" }], "hello");55 component.unmount();56 });...
index.ts
Source:index.ts
...16 assert(spy1.calledOnce)17 const spySave = sinon.spy()18 reporter.crud = {19 patchSave: async (args) => {20 spySave(args)21 }22 } as any23 reporter.report(tracer).then(() => {24 assert(spySave.calledOnce)25 const args = spySave.getCall(0).args[0]26 console.log('args', args)27 assert(args.length === 2)28 done()29 }).catch(done)...
Using AI Code Generation
1import { spySave } from 'ng-mocks';2spySave();3import { spySave } from 'ng-mocks';4spySave();5import { spySave } from 'ng-mocks';6spySave();7spySave(): void;8spyReset(): void;9spyGet(obj: any, name: string): Spy;10spyGetAll(obj: any): Spy[];
Using AI Code Generation
1import { spySave } from 'ng-mocks';2import { createSpyObj } from 'jasmine-core';3describe('AppComponent', () => {4 let component: AppComponent;5 let fixture: ComponentFixture<AppComponent>;6 let mockUserService: UserService;7 let mockRouter: Router;8 beforeEach(async(() => {9 TestBed.configureTestingModule({10 { provide: UserService, useValue: createSpyObj('UserService', ['getUser']) },11 { provide: Router, useValue: createSpyObj('Router', ['navigate']) }12 }).compileComponents();13 }));14 beforeEach(() => {15 fixture = TestBed.createComponent(AppComponent);16 component = fixture.componentInstance;17 mockUserService = TestBed.get(UserService);18 mockRouter = TestBed.get(Router);19 });20 it('should create the app', () => {21 expect(component).toBeTruthy();22 });23 it('should call getUser method of userService', () => {24 component.ngOnInit();25 expect(mockUserService.getUser).toHaveBeenCalled();26 });27 it('should call navigate method of router', () => {28 const user = { name: 'test' };29 spySave(mockUserService.getUser).and.returnValue(of(user));30 component.ngOnInit();31 expect(mockRouter.navigate).toHaveBeenCalledWith(['user', user.name]);32 });33});34import { spySave } from 'ng-mocks';35import { createSpyObj } from 'jasmine-core';36describe('AppComponent', () => {37 let component: AppComponent;38 let fixture: ComponentFixture<AppComponent>;39 let mockUserService: UserService;40 let mockRouter: Router;41 let mockAuth: AuthService;42 beforeEach(async(() => {43 TestBed.configureTestingModule({44 { provide: UserService, useValue: createSpyObj('UserService', ['getUser']) },45 { provide: Router, useValue: createSpyObj('Router', ['navigate']) },46 { provide: AuthService, useValue: createSpyObj('AuthService', ['isAuthenticated']) }47 }).compileComponents();48 }));49 beforeEach(() => {50 fixture = TestBed.createComponent(AppComponent);
Using AI Code Generation
1const spySave = spyOn(component, 'save');2const spySaveAndNavigate = spyOn(component, 'saveAndNavigate');3const mockSave = ngMocks.stub(component, 'save');4const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');5const mockSave = ngMocks.stub(component, 'save');6const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');7const mockSave = ngMocks.stub(component, 'save');8const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');9const mockSave = ngMocks.stub(component, 'save');10const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');11const mockSave = ngMocks.stub(component, 'save');12const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');13const mockSave = ngMocks.stub(component, 'save');14const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');15const mockSave = ngMocks.stub(component, 'save');16const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');17const mockSave = ngMocks.stub(component, 'save');18const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');19const mockSave = ngMocks.stub(component, 'save');20const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');21const mockSave = ngMocks.stub(component, 'save');22const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');23const mockSave = ngMocks.stub(component, 'save');24const mockSaveAndNavigate = ngMocks.stub(component, 'saveAndNavigate');
Using AI Code Generation
1const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.callThrough();2const mockSave = createSpyObject(SaveService, ['spySave']);3const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.returnValue(true);4const mockSave = createSpyObject(SaveService, ['spySave'], { spySave: true });5const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.returnValue(Promise.resolve(true));6const mockSave = createSpyObject(SaveService, ['spySave'], { spySave: Promise.resolve(true) });7const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.callFake(() => Promise.resolve(true));8const mockSave = createSpyObject(SaveService, ['spySave'], { spySave: () => Promise.resolve(true) });9const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.callThrough();10const mockSave = createSpyObject(SaveService, ['spySave']);11const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.callFake(() => Promise.resolve(true));12const mockSave = createSpyObject(SaveService, ['spySave'], { spySave: () => Promise.resolve(true) });13const mockSave = spyOn(TestBed.get(SaveService), 'spySave').and.returnValue(Promise.resolve(true));14const mockSave = createSpyObject(SaveService, ['spySave'], { spySave: Promise.resolve(true) });
Using AI Code Generation
1const spySave = ngMocks.spyOn(TestService, 'save');2spySave.and.returnValue(of({ id: 1, name: 'test' }));3const mockMethod = ngMocks.mockMethod(TestService, 'save', of({ id: 1, name: 'test' }));4const mockMethod = ngMocks.mockMethod(TestService, 'save', (id, name) => of({ id, name }));5const mockMethod = ngMocks.mockMethod(TestService, 'save', jasmine.createSpy('save'));6const mockComponent = ngMocks.mockComponent(TestComponent);7const mockComponent = ngMocks.mockComponent(TestComponent, '<div>Test</div>');8const mockComponent = ngMocks.mockComponent(TestComponent, () => '<div>Test</div>');9const mockComponent = ngMocks.mockComponent(TestComponent, Promise.resolve('<div>Test</div>'));10const mockComponent = ngMocks.mockComponent(TestComponent, of('<div>Test</div>'));
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!!