123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Licensed to the Software Freedom Conservancy (SFC) under one
- // or more contributor license agreements. See the NOTICE file
- // distributed with this work for additional information
- // regarding copyright ownership. The SFC licenses this file
- // to you under the Apache License, Version 2.0 (the
- // "License"); you may not use this file except in compliance
- // with the License. You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing,
- // software distributed under the License is distributed on an
- // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- // KIND, either express or implied. See the License for the
- // specific language governing permissions and limitations
- // under the License.
- 'use strict';
- const assert = require('assert');
- const sinon = require('sinon');
- class StubError extends Error {
- constructor(opt_msg) {
- super(opt_msg);
- this.name = this.constructor.name;
- }
- }
- exports.StubError = StubError;
- exports.throwStubError = function() {
- throw new StubError;
- };
- exports.assertIsStubError = function(value) {
- assert.ok(value instanceof StubError, value + ' is not a ' + StubError.name);
- };
- exports.assertIsInstance = function(ctor, value) {
- assert.ok(value instanceof ctor, 'Not a ' + ctor.name + ': ' + value);
- };
- function callbackPair(cb, eb) {
- if (cb && eb) {
- throw new TypeError('can only specify one of callback or errback');
- }
- let callback = cb ? sinon.spy(cb) : sinon.spy();
- let errback = eb ? sinon.spy(eb) : sinon.spy();
- function assertCallback() {
- assert.ok(callback.called, 'callback not called');
- assert.ok(!errback.called, 'errback called');
- if (callback.threw()) {
- throw callback.exceptions[0];
- }
- }
- function assertErrback() {
- assert.ok(!callback.called, 'callback called');
- assert.ok(errback.called, 'errback not called');
- if (errback.threw()) {
- throw errback.exceptions[0];
- }
- }
- function assertNeither() {
- assert.ok(!callback.called, 'callback called');
- assert.ok(!errback.called, 'errback called');
- }
- return {
- callback,
- errback,
- assertCallback,
- assertErrback,
- assertNeither
- };
- }
- exports.callbackPair = callbackPair;
- exports.callbackHelper = function(cb) {
- let pair = callbackPair(cb);
- let wrapped = pair.callback.bind(null);
- wrapped.assertCalled = () => pair.assertCallback();
- wrapped.assertNotCalled = () => pair.assertNeither();
- return wrapped;
- };
|