messages.spec.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. // Copyright (c) Jupyter Development Team.
  2. import 'jest';
  3. import { KernelMessage } from '../../src';
  4. describe('kernel/messages', () => {
  5. const iopubStatusMsg = KernelMessage.createMessage({
  6. msgType: 'status',
  7. channel: 'iopub',
  8. session: 'baz',
  9. content: {
  10. execution_state: 'idle'
  11. }
  12. });
  13. describe('KernelMessage.isStreamMsg()', () => {
  14. it('should check for a stream message type', () => {
  15. const msg = KernelMessage.createMessage<KernelMessage.IStreamMsg>({
  16. msgType: 'stream',
  17. channel: 'iopub',
  18. session: 'baz',
  19. content: {
  20. name: 'stdout',
  21. text: 'hello world'
  22. }
  23. });
  24. expect(KernelMessage.isStreamMsg(msg)).toBe(true);
  25. expect(KernelMessage.isStreamMsg(iopubStatusMsg)).toBe(false);
  26. });
  27. });
  28. describe('KernelMessage.isDisplayDataMsg()', () => {
  29. it('should check for a display data message type', () => {
  30. const msg = KernelMessage.createMessage<KernelMessage.IDisplayDataMsg>({
  31. msgType: 'display_data',
  32. channel: 'iopub',
  33. session: 'baz',
  34. content: {
  35. data: {},
  36. metadata: {}
  37. }
  38. });
  39. expect(KernelMessage.isDisplayDataMsg(msg)).toBe(true);
  40. expect(KernelMessage.isDisplayDataMsg(iopubStatusMsg)).toBe(false);
  41. });
  42. });
  43. describe('KernelMessage.isExecuteInputMsg()', () => {
  44. it('should check for a execute input message type', () => {
  45. const msg = KernelMessage.createMessage<KernelMessage.IExecuteInputMsg>({
  46. msgType: 'execute_input',
  47. channel: 'iopub',
  48. session: 'baz',
  49. content: {
  50. code: '',
  51. execution_count: 1
  52. }
  53. });
  54. expect(KernelMessage.isExecuteInputMsg(msg)).toBe(true);
  55. expect(KernelMessage.isExecuteInputMsg(iopubStatusMsg)).toBe(false);
  56. });
  57. });
  58. describe('KernelMessage.isExecuteResultMsg()', () => {
  59. it('should check for an execute result message type', () => {
  60. const msg = KernelMessage.createMessage({
  61. msgType: 'execute_result',
  62. channel: 'iopub',
  63. session: 'baz',
  64. content: { data: {}, execution_count: 1, metadata: {} }
  65. });
  66. expect(KernelMessage.isExecuteResultMsg(msg)).toBe(true);
  67. expect(KernelMessage.isExecuteResultMsg(iopubStatusMsg)).toBe(false);
  68. });
  69. });
  70. describe('KernelMessage.isStatusMsg()', () => {
  71. it('should check for a status message type', () => {
  72. const msg = KernelMessage.createMessage({
  73. msgType: 'status',
  74. channel: 'iopub',
  75. session: 'baz',
  76. content: {
  77. execution_state: 'idle'
  78. }
  79. });
  80. expect(KernelMessage.isStatusMsg(msg)).toBe(true);
  81. const msg2 = KernelMessage.createMessage<KernelMessage.IExecuteInputMsg>({
  82. msgType: 'execute_input',
  83. channel: 'iopub',
  84. session: 'baz',
  85. content: {
  86. code: '',
  87. execution_count: 1
  88. }
  89. });
  90. expect(KernelMessage.isStatusMsg(msg2)).toBe(false);
  91. });
  92. });
  93. describe('KernelMessage.isClearOutputMsg()', () => {
  94. it('should check for a clear output message type', () => {
  95. const msg = KernelMessage.createMessage({
  96. msgType: 'clear_output',
  97. channel: 'iopub',
  98. session: 'baz',
  99. content: { wait: true }
  100. });
  101. expect(KernelMessage.isClearOutputMsg(msg)).toBe(true);
  102. expect(KernelMessage.isClearOutputMsg(iopubStatusMsg)).toBe(false);
  103. });
  104. });
  105. describe('KernelMessage.isCommOpenMsg()', () => {
  106. it('should check for a comm open message type', () => {
  107. const msg = KernelMessage.createMessage({
  108. msgType: 'comm_open',
  109. channel: 'iopub',
  110. session: 'baz',
  111. content: {
  112. comm_id: 'id',
  113. data: {},
  114. target_name: 'target'
  115. }
  116. });
  117. expect(KernelMessage.isCommOpenMsg(msg)).toBe(true);
  118. expect(KernelMessage.isCommOpenMsg(iopubStatusMsg)).toBe(false);
  119. });
  120. });
  121. describe('KernelMessage.isErrorMsg()', () => {
  122. it('should check for an message type', () => {
  123. const msg = KernelMessage.createMessage({
  124. msgType: 'error',
  125. channel: 'iopub',
  126. session: 'baz',
  127. content: {
  128. ename: '',
  129. evalue: '',
  130. traceback: []
  131. }
  132. });
  133. expect(KernelMessage.isErrorMsg(msg)).toBe(true);
  134. expect(KernelMessage.isErrorMsg(iopubStatusMsg)).toBe(false);
  135. });
  136. });
  137. describe('KernelMessage.isInputRequestMsg()', () => {
  138. it('should check for an input_request message type', () => {
  139. const msg = KernelMessage.createMessage({
  140. msgType: 'input_request',
  141. channel: 'stdin',
  142. session: 'baz',
  143. content: { prompt: '', password: false }
  144. });
  145. expect(KernelMessage.isInputRequestMsg(msg)).toBe(true);
  146. const msg2 = KernelMessage.createMessage<KernelMessage.IInputReplyMsg>({
  147. msgType: 'input_reply',
  148. channel: 'stdin',
  149. session: 'baz',
  150. content: {
  151. status: 'ok',
  152. value: ''
  153. }
  154. });
  155. expect(KernelMessage.isInputRequestMsg(msg2)).toBe(false);
  156. });
  157. });
  158. });