rawStacktraceContent.spec.jsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import render, {
  2. getJavaFrame,
  3. getJavaPreamble,
  4. } from 'app/components/events/interfaces/rawStacktraceContent';
  5. describe('RawStacktraceContent', function() {
  6. describe('getJavaFrame()', function() {
  7. it('should render java frames', function() {
  8. expect(
  9. getJavaFrame({
  10. module: 'org.mortbay.thread.QueuedThreadPool$PoolThread',
  11. function: 'run',
  12. filename: 'QueuedThreadPool.java',
  13. lineNo: 582,
  14. })
  15. ).toEqual(
  16. ' at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)'
  17. );
  18. // without line number
  19. expect(
  20. getJavaFrame({
  21. module: 'org.mortbay.thread.QueuedThreadPool$PoolThread',
  22. function: 'run',
  23. filename: 'QueuedThreadPool.java',
  24. })
  25. ).toEqual(
  26. ' at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java)'
  27. );
  28. // without line number and filename
  29. expect(
  30. getJavaFrame({
  31. module: 'org.mortbay.thread.QueuedThreadPool$PoolThread',
  32. function: 'run',
  33. })
  34. ).toEqual(' at org.mortbay.thread.QueuedThreadPool$PoolThread.run');
  35. });
  36. });
  37. describe('getJavaPreamble()', function() {
  38. expect(
  39. getJavaPreamble({
  40. type: 'Baz',
  41. value: 'message',
  42. })
  43. ).toEqual('Baz: message');
  44. expect(
  45. getJavaPreamble({
  46. module: 'foo.bar',
  47. type: 'Baz',
  48. value: 'message',
  49. })
  50. ).toEqual('foo.bar.Baz: message');
  51. });
  52. describe('render()', function() {
  53. const exception = {
  54. module: 'example.application',
  55. type: 'Error',
  56. value: 'an error occurred',
  57. },
  58. data = {
  59. frames: [
  60. {
  61. function: 'main',
  62. module: 'example.application',
  63. lineNo: 1,
  64. filename: 'application',
  65. },
  66. {
  67. function: 'doThing',
  68. module: 'example.application',
  69. lineNo: 2,
  70. filename: 'application',
  71. },
  72. ],
  73. };
  74. expect(render(data, 'java', exception)).toEqual(
  75. `example.application.Error: an error occurred
  76. at example.application.doThing(application:2)
  77. at example.application.main(application:1)`
  78. );
  79. expect(render(data, 'python', exception)).toEqual(
  80. `Error: an error occurred
  81. File "application", line 1, in main
  82. File "application", line 2, in doThing`
  83. );
  84. });
  85. });