版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

G.after.test.js 6.0 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. const $ = require('../index');
  2. const config = require('./config');
  3. const jc1 = require('./code/simple1');
  4. const jc2 = require('./code/simple2');
  5. const hc1 = require('./code/simple1.html');
  6. test('$.after: empty input', () => {
  7. expect(() => {
  8. $('var a = 1;').after();
  9. }).toThrow();
  10. })
  11. test('$.after: empty object', () => {
  12. expect(() => {
  13. $('var a = 1;').after({});
  14. }).toThrow();
  15. })
  16. test('$.after: empty string', () => {
  17. expect(() => {
  18. $('var a = 1;').after('');
  19. }).toThrow();
  20. })
  21. test('$.after: null', () => {
  22. expect(() => {
  23. $('var a = 1;').after(null);
  24. }).toThrow();
  25. })
  26. test('$.after: undefined', () => {
  27. expect(() => {
  28. $('var a = 1;').after(undefined);
  29. }).toThrow();
  30. })
  31. test('$.after: input is node type', () => {
  32. expect(() => {
  33. const code = `
  34. function a(){
  35. var a = 1;
  36. }
  37. `;
  38. const node = $('var a = 1;').node;
  39. $(code).after(node);
  40. }).not.toThrow();
  41. })
  42. test('$.after: input is node type equal', () => {
  43. const code = `
  44. function a(){
  45. var a = 1;
  46. }
  47. `;
  48. const node = $('var a = 1;').node;
  49. const newCode = $(code).after(node).generate();
  50. const compareCode = '\n function a(){\n var a = 1;\n }\n var a = 1;\n ';
  51. expect(compareCode).toBe(newCode);
  52. })
  53. test('$.after: insert string code', () => {
  54. expect(() => {
  55. const code = `
  56. function a(){
  57. var a = 1;
  58. }
  59. `;
  60. $(code).after('var a = 1;');
  61. }).not.toThrow();
  62. })
  63. test('$.after: insert string code to equal', () => {
  64. const code = `
  65. function a(){
  66. var a = 1;
  67. }
  68. `;
  69. const newCode = $(code).after('var a = 1;').generate();
  70. const compareCode = '\n function a(){\n var a = 1;\n }\n var a = 1;\n ';
  71. expect(compareCode).toBe(newCode);
  72. })
  73. test('$.after: insert empty row code to equal', () => {
  74. const C = `function add(){
  75. console.log('test');
  76. }`
  77. const placeholder = `placeholder${+new Date()}`;
  78. const code = $(C)
  79. .find('function add(){}')
  80. .after(placeholder)
  81. .root()
  82. .generate()
  83. .replace(new RegExp(placeholder, 'g'), '\n')
  84. expect(code.split('\n').length === 4).toBeTruthy();
  85. })
  86. test('$.after: insert $ object', () => {
  87. expect(() => {
  88. const code = `
  89. function a(){
  90. var a = 1;
  91. }
  92. `;
  93. $(code).after($('var a = 1;'));
  94. }).not.toThrow();
  95. })
  96. test('$.after: insert $ object code to equal', () => {
  97. const code = `
  98. function a(){
  99. var a = 1;
  100. }
  101. `;
  102. const newCode = $(code).after($('var a = 1;')).generate();
  103. const compareCode = '\n function a(){\n var a = 1;\n }\n var a = 1;\n ';
  104. expect(compareCode).toBe(newCode);
  105. })
  106. test('$.after: simple2 code result should be ok', () => {
  107. const G = $(jc2)
  108. .find(` Magix.Router.to({ page, pageSize: size })`);
  109. const newG = G.after('this.updater.digest({ page, pageSize: size })');
  110. const newCode = newG.parent(1).generate();
  111. const compareCode = `{
  112. Magix.Router.to({ page, pageSize: size })
  113. this.updater.digest({ page, pageSize: size })
  114. }`;
  115. expect(compareCode).toBe(newCode);
  116. })
  117. test('$.after: undefined html code', () => {
  118. const code = `<div>test</div>`;
  119. expect(() => {
  120. const G = $(code, config.html);
  121. G.after(undefined);
  122. }).toThrow();
  123. })
  124. test('$.after: empty html code', () => {
  125. const code = `<div>test</div>`;
  126. expect(() => {
  127. const G = $(code, config.html);
  128. G.after('');
  129. }).toThrow();
  130. })
  131. test('$.after: simple html code', () => {
  132. const code = `<div>test</div>`;
  133. expect(() => {
  134. const G = $(code, config.html);
  135. G.after('<span>span</span>');
  136. }).not.toThrow();
  137. })
  138. test('$.after: simple html code to equal', () => {
  139. const code = `<div>test</div>`;
  140. const G = $(code, config.html);
  141. const newCode = G.after('<span>span</span>').generate();
  142. const compareCode = '<div>test</div><span>span</span>';
  143. expect(newCode).toEqual(compareCode)
  144. })
  145. test('$.after: simple html code,insert node', () => {
  146. const code = `<div>test</div>`;
  147. expect(() => {
  148. const G = $(code, config.html);
  149. G.after($('<span>span</span>', config.html).node);
  150. }).not.toThrow();
  151. })
  152. test('$.after: simple html node object to equal', () => {
  153. const code = `<div>test</div>`;
  154. const G = $(code, config.html);
  155. const newCode = G.after($('<span>span</span>', config.html).node).generate();
  156. const compareCode = '<div>test</div><span>span</span>';
  157. expect(newCode).toEqual(compareCode)
  158. })
  159. test('$.after: simple html code,insert $ object', () => {
  160. const code = `<div>test</div>`;
  161. expect(() => {
  162. const G = $(code, config.html);
  163. G.after($('<span>span</span>', config.html));
  164. }).not.toThrow();
  165. })
  166. test('$.after: simple html $ node to equal', () => {
  167. const code = `<div>test</div>`;
  168. const G = $(code, config.html);
  169. const newCode = G.after($('<span>span</span>', config.html)).generate();
  170. const compareCode = '<div>test</div><span>span</span>';
  171. expect(newCode).toEqual(compareCode)
  172. })
  173. test('$.after: simple1 html code', () => {
  174. expect(() => {
  175. const G = $(hc1, config.html).after('<span>after</span>');
  176. }).not.toThrow();
  177. })
  178. test('$.after: simple1 html code', () => {
  179. const code = $(hc1, config.html)
  180. .find('<span>$_$</span>')
  181. .after('<span>after</span>')
  182. .parent()
  183. .generate();
  184. expect(code.indexOf('<span>after</span>') > -1).toBeTruthy();
  185. })
  186. test('$.after: simple1 html code', () => {
  187. const code = $(`var a = 1;
  188. var b = 1;`)
  189. .find(`var a = 1`)
  190. .after('// aaaaaaaa')
  191. .root()
  192. .generate()
  193. expect(code.indexOf('// aaaaaa') > -1).toBeTruthy();
  194. })
  195. test('$.after: simple1 html code', () => {
  196. const code = $(`var a = 1;
  197. var b = 1;`)
  198. .after('// aaaaaaaa')
  199. .generate()
  200. expect(code.indexOf('// aaaaaa') > -1).toBeTruthy();
  201. })