Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.07 KB | None | 0 0
  1. let assert = require('assert');
  2. let PropManager = require('lib/propManager');
  3.  
  4. describe('#Verification manager', function () {
  5.  
  6. it('Обязательное значения в params передано', async(done) => {
  7. try {
  8. let result = {};
  9. let keys = ['id'];
  10. let data = {
  11. params: {
  12. id: 1,
  13. user: {
  14. name: "Петр"
  15. }
  16. }
  17. }
  18.  
  19. let propManager = new PropManager({
  20. query: {
  21. template: {
  22. paging: {
  23. offset: [{
  24. isRequire: false,
  25. defaultValue: 0
  26. }],
  27. limit: [{
  28. isRequire: false,
  29. defaultValue: 0
  30. }]
  31. }
  32. }
  33. },
  34. params: {
  35. template: {
  36. id: [{
  37. isRequire: true
  38. }],
  39. wall_id: [{
  40. isRequire: false
  41. }]
  42. }
  43. }
  44. });
  45.  
  46. result = await propManager.run(data);
  47.  
  48. assert(keys.every((item) => item in result.params));
  49. done();
  50.  
  51. } catch (error) {
  52. done(error);
  53. }
  54. });
  55.  
  56. it('Обязательное значения в params не передано', async(done) => {
  57. try {
  58. let result = {};
  59. let keys = ['id'];
  60. let data = {
  61. params: {
  62. user: {
  63. name: 'test'
  64. }
  65. }
  66. }
  67.  
  68. let propManager = new PropManager({
  69. params: {
  70. template: {
  71. id: [{
  72. isRequire: true
  73. }]
  74. }
  75. }
  76. });
  77.  
  78. result = await propManager.run(data);
  79.  
  80. assert(keys.every((item) => item in result.params));
  81. done("Ошибка");
  82.  
  83. } catch (error) {
  84. done();
  85. }
  86. });
  87.  
  88. it('Значение по умолчанию и дополнение структуры из шаблона', async(done) => {
  89. try {
  90. let result = {};
  91. let keys = ['paging'];
  92. let keysPaging = ['offset', 'limit'];
  93. let keysBody = ['first_name'];
  94.  
  95. let data = {
  96. params: {
  97. id: 1,
  98. user: {
  99. name: "Петр"
  100. }
  101. },
  102. body:{
  103. first_name:"Evgeniy"
  104. }
  105. }
  106.  
  107. let propManager = new PropManager({
  108. query: {
  109. template: {
  110. paging: {
  111. offset: [{
  112. defaultValue: 0
  113. }],
  114. limit: [{
  115. defaultValue: 0
  116. }]
  117. }
  118. }
  119. },
  120. body: {
  121. template: {
  122. profile: {
  123. first_name: [{
  124. isRequire: false,
  125. rootSearchValue: true
  126. }]
  127. }
  128. }
  129. }
  130. });
  131.  
  132. result = await propManager.run(data);
  133.  
  134. assert(keys.every((item) => {
  135. return item in result.query;
  136. }));
  137.  
  138. assert(keysPaging.every((item) => {
  139. return item in result.query.paging;
  140. }));
  141.  
  142. assert(keysPaging.every((item) => {
  143. return result.query.paging[item] == 0;
  144. }));
  145.  
  146. assert(keysBody.every((item) => {
  147. return item in result.body.profile;
  148. }));
  149.  
  150. done();
  151. } catch (error) {
  152. done(error);
  153. }
  154. });
  155.  
  156. it('Ручной ввод значения', async(done) => {
  157. try {
  158. let result = {};
  159. let keys = ['id'];
  160. let data = {
  161. params: {
  162. id: 1,
  163. user: {
  164. name: "Петр"
  165. }
  166. }
  167. }
  168.  
  169. let propManager = new PropManager({
  170. params: {
  171. template: {
  172. id: [{
  173. isRequire: true,
  174. manualValue: 10
  175. }]
  176. }
  177. }
  178. });
  179.  
  180. result = await propManager.run(data);
  181.  
  182. assert(keys.every((item) => {
  183. return item in result.params;
  184. }));
  185.  
  186. assert(result.params.id == 10);
  187.  
  188. done();
  189. } catch (error) {
  190. done(error);
  191. }
  192.  
  193. });
  194.  
  195. it('Использование функции для подготовки значения', async(done) => {
  196. try {
  197. let result = {};
  198. let keys = ['password', 'id'];
  199. let data = {
  200. params: {
  201. id: 1,
  202. password: "123"
  203. }
  204. }
  205.  
  206. let propManager = new PropManager({
  207. params: {
  208. template: {
  209. password: [{
  210. isRequire: true,
  211. processingValue:(value) => {
  212. return `${[...value].reverse().join('')}` }
  213. }],
  214. id: [{
  215. isRequire: true
  216. }]
  217. }
  218. }
  219. });
  220.  
  221. result = await propManager.run(data);
  222.  
  223. assert(keys.every((item) => {
  224. return item in result.params;
  225. }));
  226.  
  227. assert(result.params.password == '321');
  228.  
  229. done();
  230. } catch (error) {
  231. done(error);
  232. }
  233.  
  234. });
  235.  
  236. it('Проверка корректный тип данных', async(done) => {
  237. try {
  238. let result = {};
  239. let keys = ['password', 'id'];
  240. let data = {
  241. params: {
  242. id: 1,
  243. password: "123"
  244. }
  245. }
  246.  
  247. let propManager = new PropManager({
  248. params: {
  249. template: {
  250. password: [{
  251. isRequire: true,
  252. typeValue: PropManager.PropTypes.isString
  253. }],
  254. id: [{
  255. isRequire: true
  256. }]
  257. }
  258. }
  259. });
  260.  
  261. result = await propManager.run(data);
  262.  
  263. assert(keys.every((item) => {
  264. return item in result.params;
  265. }));
  266.  
  267. done();
  268. } catch (error) {
  269. done(error);
  270. }
  271.  
  272. });
  273.  
  274. it('Проверка не корректный тип данных', async(done) => {
  275. try {
  276. let data = {
  277. params: {
  278. id: 1,
  279. password: "123"
  280. }
  281. }
  282.  
  283. let propManager = new PropManager({
  284. params: {
  285. template: {
  286. password: [{
  287. isRequire: true,
  288. typeValue: PropManager.PropTypes.isNumber
  289. }],
  290. id: [{
  291. isRequire: true
  292. }]
  293. }
  294. }
  295. });
  296.  
  297. await propManager.run(data);
  298.  
  299. done("Ошибка");
  300. } catch (error) {
  301. done();
  302. }
  303.  
  304. });
  305.  
  306. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement