Best JavaScript code snippet using unexpected
createTopLevelExpect.js
Source:createTopLevelExpect.js
...1182 forwardedFlags1183) {1184 const flags = extend({}, forwardedFlags, assertionRule.flags);1185 const parentExpect = this;1186 function wrappedExpect(subject, testDescriptionString) {1187 if (arguments.length === 0) {1188 throw new Error('The expect function requires at least one parameter.');1189 } else if (arguments.length === 1) {1190 return addAdditionalPromiseMethods(1191 makePromise.resolve(subject),1192 wrappedExpect,1193 subject1194 );1195 } else if (typeof testDescriptionString === 'function') {1196 wrappedExpect.errorMode = 'nested';1197 return wrappedExpect.withError(1198 () => testDescriptionString(subject),1199 (err) => {1200 wrappedExpect.fail(err);...
assertTheUnexpected.js
Source:assertTheUnexpected.js
...77 assertionError.stack = err.stack && err.stack.replace(assertionError.message, assertMessage);78 return assertionError;79 }80 function createWrappedExpect(localExpect, options) {81 return function wrappedExpect() {82 var args = Array.prototype.slice.apply(arguments);83 // convert UnexpectedError to AssertionError84 try {85 return localExpect.apply(localExpect, args);86 } catch (err) {87 throw makeError(err, options);88 }89 };90 }91 var expectWithLooseEquality = expect.clone();92 expectWithLooseEquality.addAssertion('<any> [not] to loosely be <any>', function (expect, subject, expected) {93 var comarisonValues = prepareEqual(subject, expected);94 var a = comarisonValues.a;95 var b = comarisonValues.b;96 expect(a, '[not] to be', b);97 });98 expectWithLooseEquality.addAssertion('<any> [not] to loosely equal <any>', function (expect, subject, expected) {99 var a = subject;100 var b = expected;101 var comparisonValues;102 // first type deep equal preparation103 comparisonValues = prepareDeepEqual(a, b);104 if (!comparisonValues && !(isObject(a) || isObject(b))) {105 comparisonValues = prepareEqual(a, b);106 }107 if (comparisonValues) {108 a = comparisonValues.a;109 b = comparisonValues.b;110 }111 expect(a, '[not] to equal', b);112 });113 var baseWrappedExpect = createWrappedExpect(expectWithLooseEquality);114 function wrappedWithMessage(message) {115 return createWrappedExpect(expectWithLooseEquality, {116 message: message117 });118 }119 function checkIfError(value) {120 try {121 expect(value, 'to be falsy');122 } catch (e) {123 throw value;124 }125 }126 function checkNotThrow(block, errorConstraint, message) {127 function checkError(blockError) {128 var outputMessage = 'Got unwanted exception';129 var outputMessageSuffix;130 if (isRegExp(errorConstraint)) {131 try {132 expect(blockError, 'to have message', errorConstraint);133 } catch (e) {134 if (!isString(message)) {135 throw blockError;136 }137 outputMessageSuffix = '. ' + message;138 }139 } else if (errorConstraint) {140 /*141 * Check whether the unexpected exception satisfied142 * the constraint that was supplied.143 */144 try {145 expect(blockError, 'not to be a', errorConstraint);146 } catch (e) {147 outputMessageSuffix = ' (' + errorConstraint.name + ').';148 if (isString(message)) {149 outputMessageSuffix += ' ' + message;150 } else {151 outputMessageSuffix += '.';152 }153 }154 if (isString(errorConstraint)) {155 outputMessageSuffix = '. ' + errorConstraint;156 }157 if (!outputMessageSuffix) {158 // it was not satisfied so throw the orignal error159 throw blockError;160 }161 }162 if (outputMessageSuffix) {163 outputMessage += outputMessageSuffix;164 } else {165 outputMessage += '..';166 }167 // notify an eception was seen in the absence of a constraint168 throw makeError(blockError, {169 message: outputMessage170 });171 }172 try {173 expect(function () {174 block();175 }, 'not to error');176 } catch (e) {177 checkError(e.originalError);178 }179 }180 function checkThrows(block, errorConstraint, message) {181 function checkError(blockError) {182 if (isRegExp(blockError)) {183 throw blockError;184 }185 if (errorConstraint) {186 try {187 expect(blockError, 'to be a', errorConstraint);188 } catch (e) {189 // XXX must be a specific check against true190 // This avoids constructors that happen to succeed191 // retuning and being misinterpreted.192 try {193 expect(errorConstraint(blockError), 'to be true');194 } catch (e2) {195 throw blockError;196 }197 }198 }199 }200 var checkToError;201 var outputMessageSuffix;202 if (isRegExp(errorConstraint)) {203 checkToError = errorConstraint;204 // in this case a user defined messagee may be the next arg205 outputMessageSuffix = message;206 } else {207 checkToError = expect.it(function (e) {208 checkError(e);209 return true;210 });211 // the message is the second argument if it exists212 outputMessageSuffix = errorConstraint;213 }214 try {215 expect(function () {216 block();217 }, 'to error', checkToError);218 } catch (e) {219 if (e.originalError) {220 // unpack an unexpected error221 e = e.originalError;222 // throw original error on regex mismatch223 if (isRegExp(errorConstraint)) {224 throw e;225 }226 } else if (e.name !== 'UnexpectedError') {227 // throw any errors that do not arise from "to error"228 throw e;229 }230 var outputMessage = 'Missing expected exception.';231 if (isString(outputMessageSuffix)) {232 outputMessage += ' ' + outputMessageSuffix;233 } else {234 outputMessage += '.';235 }236 // no error was seen despite it being expected237 throw makeError(e, {238 message: outputMessage239 });240 }241 }242 function checkTruthy(value, message) {243 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;244 wrappedExpect(value, 'to be truthy');245 }246 function prepareDeepEqual(actual, expected) {247 var a = actual;248 var b = expected;249 if (Array.isArray(a) && Array.isArray(b)) {250 a = a.slice(0);251 b = b.slice(0);252 for (var i = 0; i < a.length; i += 1) {253 var comparisonValues = prepareEqual(a[i], b[i]);254 a[i] = comparisonValues.a;255 b[i] = comparisonValues.b;256 }257 return {258 a: a,259 b: b260 };261 } else if (isComparingObjectAndArray(a, b)) {262 if (isArguments(a) || isArguments(b)) {263 return {264 a: a,265 b: b266 };267 }268 if (Array.isArray(a)) {269 return {270 a: a,271 b: convertObjectToArray(b)272 };273 } else {274 return {275 a: convertObjectToArray(a),276 b: b277 };278 }279 } else if (280 (isObject(a) && isObject(b)) &&281 !(isDate(a) && isDate(b)) &&282 !(isRegExp(a) && isRegExp(b)) &&283 !(a === null || b === null)284 ) {285 return {286 a: convertObjectToLooseObject(a),287 b: convertObjectToLooseObject(b)288 }289 }290 return null;291 }292 function prepareEqual(actual, expected) {293 var a = actual;294 var b = expected;295 if (isString(a) && isString(b)) {296 return {297 a: a,298 b: b299 };300 }301 if ((isNumber(a) || isNumber(b)) && (isString(a) || isString(b))) {302 return {303 a: String(a),304 b: String(b)305 };306 }307 return {308 a: !!a,309 b: !!b310 };311 }312 return assignObject(function assertTheUnexpected(value, message) {313 checkTruthy(value, message);314 }, {315 AssertionError: AssertionError,316 deepEqual: function deepEqual(actual, expected, message) {317 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;318 wrappedExpect(actual, 'to loosely equal', expected);319 // handle the lastIndex property320 if (actual instanceof RegExp && actual.hasOwnProperty('lastIndex')) {321 wrappedExpect(actual.lastIndex, 'to equal', expected.lastIndex);322 }323 },324 deepStrictEqual: function deepStrictEqual(actual, expected, message) {325 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;326 if (Array.isArray(actual) && Array.isArray(expected)) {327 wrappedExpect(actual, 'to exhaustively satisfy', expected);328 } else {329 wrappedExpect(actual, 'to equal', expected);330 }331 if (typeof actual === 'symbol') {332 wrappedExpect('symbol', 'to equal', typeof expected);333 }334 // handle the lastIndex property335 if (actual instanceof RegExp && actual.hasOwnProperty('lastIndex')) {336 wrappedExpect(actual.lastIndex, 'to equal', expected.lastIndex);337 }338 },339 doesNotThrow: function doesNotThrow(block, expected, message) {340 checkNotThrow(block, expected, message);341 },342 equal: function equal(actual, expected, message) {343 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;344 wrappedExpect(actual, 'to loosely be', expected);345 },346 ifError: function ifError(value) {347 checkIfError(value);348 },349 notEqual: function notEqual(actual, expected, message) {350 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;351 wrappedExpect(actual, 'not to loosely be', expected);352 },353 notDeepEqual: function notDeepEqual(actual, expected, message) {354 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;355 wrappedExpect(actual, 'not to loosely equal', expected);356 },357 notDeepStrictEqual: function notDeepStrictEqual(actual, expected, message) {358 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;359 wrappedExpect(actual, 'not to equal', expected);360 },361 notStrictEqual: function notStrictEqual(actual, expected, message) {362 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;363 wrappedExpect(actual, 'not to be', expected);364 },365 ok: function ok(value, message) {366 checkTruthy(value, message);367 },368 strictEqual: function strictEqual(actual, expected, message) {369 var wrappedExpect = message ? wrappedWithMessage(message) : baseWrappedExpect;370 wrappedExpect(actual, 'to be', expected);371 },372 throws: function throws(block, expected, message) {373 checkThrows(block, expected, message);374 }375 });376}...
runSaga.js
Source:runSaga.js
1import { next, error, cancel, METHOD } from './methods'2const restartGenerator = ({ saga, input = {} }) => {3 const action = input[METHOD]4 return action ? saga[action](input.data) : saga.next()5}6const getSelectors = ({ value, done }) => ({7 value: () => expect(value),8 done: () => expect(done)9})10const getMethod = (method, state) => (data) => {11 state.input = method(data)12 const output = restartGenerator(state)13 return getSelectors(output)14}15const getEnhancedExpect = (state) => {16 const wrappedExpect = (expected) => expect(expected)17 const methods = {18 next: getMethod(next, state),19 error: getMethod(error, state),20 cancel: getMethod(cancel, state)21 }22 return Object.assign(wrappedExpect, methods)23}24const testMiddleware = (state, fn, ...args) => {25 const output = restartGenerator(state)26 state.input = fn(output, ...args)27}28const getEnhancedTest = (state) =>29 (name, fn) => test(name, testMiddleware.bind(null, state, fn))30const runSaga = (saga) => {31 const state = { saga, input: {} }32 const expect = getEnhancedExpect(state)33 const test = getEnhancedTest(state)34 return { expect, test, it: test }35}36export default runSaga37export {38 restartGenerator,39 getSelectors,40 getMethod,41 getEnhancedExpect,42 testMiddleware...
Using AI Code Generation
1import unexpected from 'unexpected';2import unexpectedReact from 'unexpected-react';3const expect = unexpected.clone().use(unexpectedReact);4describe('test', () => {5 it('test', () => {6 const wrapper = shallow(<div />);7 expect(wrapper, 'to have rendered', <div />);8 });9});10##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement>', (expect, subject, value) => {})`11##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] <number> times', (expect, subject, value, times) => {})`12##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] once', (expect, subject, value) => {})`13##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] twice', (expect, subject, value) => {})`14##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] thrice', (expect, subject, value) => {})`15##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] <number> times with props <object>', (expect, subject, value, times, props) => {})`16##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] once with props <object>', (expect, subject, value, props) => {})`17##### `expect.addAssertion('<ReactWrapper> to have [exactly] rendered <ReactElement> [exactly] twice with props <object>', (expect, subject, value, props) => {})`
Using AI Code Generation
1const expect = require('unexpected')2 .clone()3 .use(require('unexpected-mitm'));4const wrappedExpect = require('unexpected')5 .clone()6 .use(require('unexpected-mitm'));7const expect = require('unexpected')8 .clone()9 .use(require('unexpected-mitm'));10const expect = require('unexpected')11 .clone()12 .use(require('unexpected-mitm'));13const expect = require('unexpected')14 .clone()15 .use(require('unexpected-mitm'));16const expect = require('unexpected')17 .clone()18 .use(require('unexpected-mitm'));19const expect = require('unexpected')20 .clone()21 .use(require('unexpected-mitm'));22const expect = require('unexpected')23 .clone()24 .use(require('unexpected-mitm'));25const expect = require('unexpected')26 .clone()27 .use(require('unexpected-mitm'));28const expect = require('unexpected')29 .clone()30 .use(require('unexpected-mitm'));31const expect = require('unexpected')32 .clone()33 .use(require('unexpected-mitm'));34const expect = require('unexpected')35 .clone()36 .use(require('unexpected-mitm'));
Using AI Code Generation
1const React = require('react');2const { wrap } = require('unexpected-react');3const { mount } = require('enzyme');4const MyComponent = require('../src/MyComponent');5const wrappedExpect = wrap(expect, mount);6describe('<MyComponent />', function () {7 it('should render', function () {8 wrappedExpect(<MyComponent />, 'to have rendered', <div />);9 });10});11const React = require('react');12const MyComponent = () => <div />;13module.exports = MyComponent;14const MyComponent = () => <span />;15wrappedExpect(<MyComponent />, 'to have rendered', <span />);16wrappedExpect(<MyComponent />, 'to have rendered', <span />);17wrappedExpect(<MyComponent />, 'to have rendered', <span />);18wrappedExpect(<MyComponent />, 'to have rendered', <span />);19wrappedExpect(<MyComponent />, 'to have rendered', <span />);20wrappedExpect(<MyComponent />, 'to have rendered', <span />);21wrappedExpect(<MyComponent />, 'to have rendered', <span />);22wrappedExpect(<MyComponent />, 'to have rendered', <span />);23wrappedExpect(<MyComponent />, 'to have rendered', <span />);24wrappedExpect(<MyComponent />, 'to
Using AI Code Generation
1var unexpected = require('unexpected');2var expect = unexpected.clone();3expect.output.preferredWidth = 80;4var wrappedExpect = require('unexpected-react');5wrappedExpect.installInto(expect);6var React = require('react');7var TestUtils = require('react-addons-test-utils');8var MyComponent = React.createClass({9 render: function() {10 return <div className="my-component">{this.props.children}</div>;11 }12});13var myComponent = TestUtils.renderIntoDocument(14);15expect(myComponent, 'to have rendered',16);17### expect.addAssertion([<string>], <string>, <function>)18### expect.addType(<object>)19### expect.addStyle(<string>, <object>)20### wrappedExpect.installInto(<object>)
Using AI Code Generation
1var wrappedExpect = require('unexpected').clone().use(require('unexpected-dom'));2var chai = require('chai');3var expect = chai.expect;4var chaiEnzyme = require('chai-enzyme');5chai.use(chaiEnzyme());6var jasmineExpect = require('jasmine-expect');7var jestExpect = require('expect');
Using AI Code Generation
1var expect = require('unexpected').clone().use(require('unexpected-sinon'));2var sinon = require('sinon');3var fs = require('fs');4var path = require('path');5var sinon = require('sinon');6var fs = require('fs');7var path = require('path');8var chai = require('chai');9var expect = chai.expect;10var chaiAsPromised = require('chai-as-promised');11var proxyquire = require('proxyquire');12chai.use(chaiAsPromised);
Using AI Code Generation
1const { unexpected } = require('unexpected');2const { wrappedExpect } = unexpected.clone();3const { unexpected } = require('unexpected');4const { wrappedExpect } = unexpected.clone();5const { expect, assert } = require('chai');6const { unexpected } = require('unexpected');7const { wrappedExpect } = unexpected.clone();8const { expect, assert } = require('chai');9const { AssertionError } = require('assert');10const { unexpected } = require('unexpected');11const { wrappedExpect } = unexpected.clone();12const { expect, assert } = require('chai');13const { AssertionError } = require('assert');14const { AssertionError } = require('assert');15const { unexpected } = require('unexpected');16const { wrappedExpect } = unexpected.clone();17const { expect, assert } = require('chai');18const { AssertionError } = require('assert');19const { AssertionError } = require('assert');20const { AssertionError } = require('assert');21const { unexpected } = require('unexpected');22const { wrappedExpect } = unexpected.clone();23const { expect, assert } = require('chai');24const { AssertionError } = require('assert');25const { AssertionError } = require('assert');26const { AssertionError } = require('assert');27const { AssertionError } = require('assert');28const { unexpected } = require('unexpected');29const { wrappedExpect } = unexpected.clone();30const { expect, assert } = require('chai');
Using AI Code Generation
1const expect = require('unexpected');2const { wrapExpect } = require('expect-jsx');3expect.use(wrapExpect);4expect.addAssertion('<string> to have <string>', (expect, subject, value) => {5 expect(subject, 'to contain', value);6});7describe('Unexpected', () => {8 it('should have unexpected', () => {9 expect('unexpected', 'to have', 'expected');10 });11});
Using AI Code Generation
1var wrappedExpect = require('unexpected')2 .clone()3 .use(require('unexpected-sinon'));4wrappedExpect.spy(function () {5 console.log('Hello');6}, 'to have been called once');7var wrappedExpect = require('unexpected')8 .clone()9 .use(require('unexpected-htmllike'));10wrappedExpect('<div>Hello</div>', 'to have attributes', {11});
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!!