ckeditorerror.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* globals document */
  6. 'use strict';
  7. var modules = bender.amd.require( 'ckeditorerror' );
  8. describe( 'CKEditorError', function() {
  9. it( 'inherits from Error', function() {
  10. var CKEditorError = modules.ckeditorerror;
  11. var error = new CKEditorError( 'foo' );
  12. expect( error ).to.be.an.instanceOf( Error );
  13. expect( error ).to.be.an.instanceOf( CKEditorError );
  14. } );
  15. it( 'sets the name', function() {
  16. var CKEditorError = modules.ckeditorerror;
  17. var error = new CKEditorError( 'foo' );
  18. expect( error ).to.have.property( 'name', 'CKEditorError' );
  19. } );
  20. it( 'sets the message', function() {
  21. var CKEditorError = modules.ckeditorerror;
  22. var error = new CKEditorError( 'foo' );
  23. expect( error ).to.have.property( 'message', 'foo' );
  24. expect( error.data ).to.be.undefined;
  25. } );
  26. it( 'sets the message and data', function() {
  27. var CKEditorError = modules.ckeditorerror;
  28. var data = { bar: 1 };
  29. var error = new CKEditorError( 'foo', data );
  30. expect( error ).to.have.property( 'message', 'foo {"bar":1}' );
  31. expect( error ).to.have.property( 'data', data );
  32. } );
  33. it( 'appends stringified data to the message', function() {
  34. class Foo {
  35. constructor() {
  36. this.x = 1;
  37. }
  38. }
  39. var CKEditorError = modules.ckeditorerror;
  40. var data = {
  41. bar: 'a',
  42. bom: new Foo(),
  43. bim: document.body
  44. };
  45. var error = new CKEditorError( 'foo', data );
  46. expect( error ).to.have.property( 'message', 'foo {"bar":"a","bom":{"x":1},"bim":{}}' );
  47. expect( error ).to.have.property( 'data', data );
  48. } );
  49. } );