vat.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. describe('vat', function() {
  2. beforeEach(function() {
  3. $([
  4. '<form class="form-horizontal" id="vatForm">',
  5. '<div class="form-group">',
  6. '<select class="form-control" name="country">',
  7. '<option value="AT">Austria</option>',
  8. '<option value="BE">Belgium</option>',
  9. '<option value="BG">Bulgaria</option>',
  10. '<option value="HR">Croatia</option>',
  11. '<option value="CY">Cyprus</option>',
  12. '<option value="CZ">Czech Republic</option>',
  13. '<option value="DK">Denmark</option>',
  14. '<option value="EE">Estonia</option>',
  15. '<option value="FI">Finland</option>',
  16. '<option value="FR">France</option>',
  17. '<option value="DE">Germany</option>',
  18. '<option value="GR">Greece</option>',
  19. '<option value="HU">Hungary</option>',
  20. '<option value="IE">Ireland</option>',
  21. '<option value="IS">Iceland</option>',
  22. '<option value="IT">Italy</option>',
  23. '<option value="LV">Latvia</option>',
  24. '<option value="LT">Lithuania</option>',
  25. '<option value="LU">Luxembourg</option>',
  26. '<option value="MT">Malta</option>',
  27. '<option value="NL">Netherlands</option>',
  28. '<option value="NO">Norway</option>',
  29. '<option value="PL">Poland</option>',
  30. '<option value="PT">Portugal</option>',
  31. '<option value="RO">Romania</option>',
  32. '<option value="RU">Russia</option>',
  33. '<option value="RS">Serbia</option>',
  34. '<option value="SK">Slovakia</option>',
  35. '<option value="SI">Slovenia</option>',
  36. '<option value="ES">Spain</option>',
  37. '<option value="SE">Sweden</option>',
  38. '<option value="CH">Switzerland</option>',
  39. '<option value="GB">United Kingdom</option>',
  40. '<option value="ZA">South Africa</option>',
  41. '</select>',
  42. '</div>',
  43. '<div class="form-group">',
  44. '<input type="text" name="vat" data-bv-vat />',
  45. '</div>',
  46. '</form>',
  47. ].join('\n')).appendTo('body');
  48. $('#vatForm').bootstrapValidator();
  49. /**
  50. * @type {BootstrapValidator}
  51. */
  52. this.bv = $('#vatForm').data('bootstrapValidator');
  53. this.$country = this.bv.getFieldElements('country');
  54. this.$vat = this.bv.getFieldElements('vat');
  55. });
  56. afterEach(function() {
  57. $('#vatForm').bootstrapValidator('destroy').remove();
  58. });
  59. it('dynamic country', function() {
  60. this.$vat.attr('data-bv-vat-country', 'country');
  61. this.bv.destroy();
  62. this.bv = $('#vatForm').bootstrapValidator().data('bootstrapValidator');
  63. this.$country.val('AT');
  64. this.$vat.val('ATU13585627');
  65. this.bv.validate();
  66. expect(this.bv.isValid()).toBeTruthy();
  67. this.bv.resetForm();
  68. this.$country.val('BG');
  69. this.$vat.val('BE0428759497');
  70. this.bv.validate();
  71. expect(this.bv.isValid()).toEqual(false);
  72. this.bv.resetForm();
  73. this.$country.val('BE');
  74. this.$vat.val('BE431150351');
  75. this.bv.validate();
  76. expect(this.bv.isValid()).toEqual(false);
  77. });
  78. it('Austrian VAT number', function() {
  79. // Valid samples
  80. var validSamples = ['ATU13585627'];
  81. for (var i in validSamples) {
  82. this.bv.resetForm();
  83. this.$vat.val(validSamples[i]);
  84. this.bv.validate();
  85. expect(this.bv.isValid()).toBeTruthy();
  86. }
  87. // Invalid samples
  88. var invalidSamples = ['ATU13585626'];
  89. for (i in invalidSamples) {
  90. this.bv.resetForm();
  91. this.$vat.val(invalidSamples[i]);
  92. this.bv.validate();
  93. expect(this.bv.isValid()).toEqual(false);
  94. }
  95. });
  96. it('Belgian VAT number', function() {
  97. // Valid samples
  98. var validSamples = ['BE0428759497'];
  99. for (var i in validSamples) {
  100. this.bv.resetForm();
  101. this.$vat.val(validSamples[i]);
  102. this.bv.validate();
  103. expect(this.bv.isValid()).toBeTruthy();
  104. }
  105. // Invalid samples
  106. var invalidSamples = ['BE431150351'];
  107. for (i in invalidSamples) {
  108. this.bv.resetForm();
  109. this.$vat.val(invalidSamples[i]);
  110. this.bv.validate();
  111. expect(this.bv.isValid()).toEqual(false);
  112. }
  113. });
  114. it('Bulgarian VAT number', function() {
  115. // Valid samples
  116. var validSamples = ['BG175074752', 'BG7523169263', 'BG8032056031', 'BG7542011030', 'BG7111042925'];
  117. for (var i in validSamples) {
  118. this.bv.resetForm();
  119. this.$vat.val(validSamples[i]);
  120. this.bv.validate();
  121. expect(this.bv.isValid()).toBeTruthy();
  122. }
  123. // Invalid samples
  124. var invalidSamples = ['BG175074753', 'BG7552A10004', 'BG7111042922'];
  125. for (i in invalidSamples) {
  126. this.bv.resetForm();
  127. this.$vat.val(invalidSamples[i]);
  128. this.bv.validate();
  129. expect(this.bv.isValid()).toEqual(false);
  130. }
  131. });
  132. it('Cypriot VAT number', function() {
  133. // Valid samples
  134. var validSamples = ['CY10259033P'];
  135. for (var i in validSamples) {
  136. this.bv.resetForm();
  137. this.$vat.val(validSamples[i]);
  138. this.bv.validate();
  139. expect(this.bv.isValid()).toBeTruthy();
  140. }
  141. // Invalid samples
  142. var invalidSamples = ['CY10259033Z'];
  143. for (i in invalidSamples) {
  144. this.bv.resetForm();
  145. this.$vat.val(invalidSamples[i]);
  146. this.bv.validate();
  147. expect(this.bv.isValid()).toEqual(false);
  148. }
  149. });
  150. it('Czech Republic VAT number', function() {
  151. // Valid samples
  152. var validSamples = ['CZ25123891', 'CZ7103192745', 'CZ991231123', 'CZ640903926'];
  153. for (var i in validSamples) {
  154. this.bv.resetForm();
  155. this.$vat.val(validSamples[i]);
  156. this.bv.validate();
  157. expect(this.bv.isValid()).toBeTruthy();
  158. }
  159. // Invalid samples
  160. var invalidSamples = ['CZ25123890', 'CZ1103492745', 'CZ590312123'];
  161. for (i in invalidSamples) {
  162. this.bv.resetForm();
  163. this.$vat.val(invalidSamples[i]);
  164. this.bv.validate();
  165. expect(this.bv.isValid()).toEqual(false);
  166. }
  167. });
  168. it('German VAT number', function() {
  169. // Valid samples
  170. var validSamples = ['DE136695976'];
  171. for (var i in validSamples) {
  172. this.bv.resetForm();
  173. this.$vat.val(validSamples[i]);
  174. this.bv.validate();
  175. expect(this.bv.isValid()).toBeTruthy();
  176. }
  177. // Invalid samples
  178. var invalidSamples = ['DE136695978'];
  179. for (i in invalidSamples) {
  180. this.bv.resetForm();
  181. this.$vat.val(invalidSamples[i]);
  182. this.bv.validate();
  183. expect(this.bv.isValid()).toEqual(false);
  184. }
  185. });
  186. it('Danish VAT number', function() {
  187. // Valid samples
  188. var validSamples = ['DK13585628'];
  189. for (var i in validSamples) {
  190. this.bv.resetForm();
  191. this.$vat.val(validSamples[i]);
  192. this.bv.validate();
  193. expect(this.bv.isValid()).toBeTruthy();
  194. }
  195. // Invalid samples
  196. var invalidSamples = ['DK13585627'];
  197. for (i in invalidSamples) {
  198. this.bv.resetForm();
  199. this.$vat.val(invalidSamples[i]);
  200. this.bv.validate();
  201. expect(this.bv.isValid()).toEqual(false);
  202. }
  203. });
  204. it('Estonian VAT number', function() {
  205. // Valid samples
  206. var validSamples = ['EE100931558', 'EE100594102'];
  207. for (var i in validSamples) {
  208. this.bv.resetForm();
  209. this.$vat.val(validSamples[i]);
  210. this.bv.validate();
  211. expect(this.bv.isValid()).toBeTruthy();
  212. }
  213. // Invalid samples
  214. var invalidSamples = ['EE100594103'];
  215. for (i in invalidSamples) {
  216. this.bv.resetForm();
  217. this.$vat.val(invalidSamples[i]);
  218. this.bv.validate();
  219. expect(this.bv.isValid()).toEqual(false);
  220. }
  221. });
  222. it('Spanish VAT number (NIF)', function() {
  223. // Valid samples
  224. var validSamples = ['ES54362315K', 'ESX2482300W', 'ESX5253868R', 'ESM1234567L', 'ESJ99216582', 'ESB58378431', 'ESB64717838'];
  225. for (var i in validSamples) {
  226. this.bv.resetForm();
  227. this.$vat.val(validSamples[i]);
  228. this.bv.validate();
  229. expect(this.bv.isValid()).toBeTruthy();
  230. }
  231. // Invalid samples
  232. var invalidSamples = ['ES54362315Z', 'ESX2482300A', 'ESJ99216583'];
  233. for (i in invalidSamples) {
  234. this.bv.resetForm();
  235. this.$vat.val(invalidSamples[i]);
  236. this.bv.validate();
  237. expect(this.bv.isValid()).toEqual(false);
  238. }
  239. });
  240. it('Finnish VAT number', function() {
  241. // Valid samples
  242. var validSamples = ['FI20774740'];
  243. for (var i in validSamples) {
  244. this.bv.resetForm();
  245. this.$vat.val(validSamples[i]);
  246. this.bv.validate();
  247. expect(this.bv.isValid()).toBeTruthy();
  248. }
  249. // Invalid samples
  250. var invalidSamples = ['FI20774741'];
  251. for (i in invalidSamples) {
  252. this.bv.resetForm();
  253. this.$vat.val(invalidSamples[i]);
  254. this.bv.validate();
  255. expect(this.bv.isValid()).toEqual(false);
  256. }
  257. });
  258. it('French VAT number (TVA)', function() {
  259. // Valid samples
  260. var validSamples = ['FR40303265045', 'FR23334175221', 'FRK7399859412', 'FR4Z123456782'];
  261. for (var i in validSamples) {
  262. this.bv.resetForm();
  263. this.$vat.val(validSamples[i]);
  264. this.bv.validate();
  265. expect(this.bv.isValid()).toBeTruthy();
  266. }
  267. // Invalid samples
  268. var invalidSamples = ['FR84323140391'];
  269. for (i in invalidSamples) {
  270. this.bv.resetForm();
  271. this.$vat.val(invalidSamples[i]);
  272. this.bv.validate();
  273. expect(this.bv.isValid()).toEqual(false);
  274. }
  275. });
  276. it('United Kingdom VAT number', function() {
  277. // Valid samples
  278. var validSamples = ['GB980780684'];
  279. for (var i in validSamples) {
  280. this.bv.resetForm();
  281. this.$vat.val(validSamples[i]);
  282. this.bv.validate();
  283. expect(this.bv.isValid()).toBeTruthy();
  284. }
  285. // Invalid samples
  286. var invalidSamples = ['GB802311781'];
  287. for (i in invalidSamples) {
  288. this.bv.resetForm();
  289. this.$vat.val(invalidSamples[i]);
  290. this.bv.validate();
  291. expect(this.bv.isValid()).toEqual(false);
  292. }
  293. });
  294. it('Greek VAT number', function() {
  295. // Valid samples
  296. var validSamples = ['GR023456780', 'EL094259216'];
  297. for (var i in validSamples) {
  298. this.bv.resetForm();
  299. this.$vat.val(validSamples[i]);
  300. this.bv.validate();
  301. expect(this.bv.isValid()).toBeTruthy();
  302. }
  303. // Invalid samples
  304. var invalidSamples = ['EL123456781'];
  305. for (i in invalidSamples) {
  306. this.bv.resetForm();
  307. this.$vat.val(invalidSamples[i]);
  308. this.bv.validate();
  309. expect(this.bv.isValid()).toEqual(false);
  310. }
  311. });
  312. it('Hungarian VAT number', function() {
  313. // Valid samples
  314. var validSamples = ['HU12892312'];
  315. for (var i in validSamples) {
  316. this.bv.resetForm();
  317. this.$vat.val(validSamples[i]);
  318. this.bv.validate();
  319. expect(this.bv.isValid()).toBeTruthy();
  320. }
  321. // Invalid samples
  322. var invalidSamples = ['HU12892313'];
  323. for (i in invalidSamples) {
  324. this.bv.resetForm();
  325. this.$vat.val(invalidSamples[i]);
  326. this.bv.validate();
  327. expect(this.bv.isValid()).toEqual(false);
  328. }
  329. });
  330. it('Croatian VAT number', function() {
  331. // Valid samples
  332. var validSamples = ['HR33392005961'];
  333. for (var i in validSamples) {
  334. this.bv.resetForm();
  335. this.$vat.val(validSamples[i]);
  336. this.bv.validate();
  337. expect(this.bv.isValid()).toBeTruthy();
  338. }
  339. // Invalid samples
  340. var invalidSamples = ['HR33392005962'];
  341. for (i in invalidSamples) {
  342. this.bv.resetForm();
  343. this.$vat.val(invalidSamples[i]);
  344. this.bv.validate();
  345. expect(this.bv.isValid()).toEqual(false);
  346. }
  347. });
  348. it('Irish VAT number', function() {
  349. // Valid samples
  350. var validSamples = ['IE6433435F', 'IE6433435OA', 'IE8D79739I'];
  351. for (var i in validSamples) {
  352. this.bv.resetForm();
  353. this.$vat.val(validSamples[i]);
  354. this.bv.validate();
  355. expect(this.bv.isValid()).toBeTruthy();
  356. }
  357. // Invalid samples
  358. var invalidSamples = ['IE8D79738J'];
  359. for (i in invalidSamples) {
  360. this.bv.resetForm();
  361. this.$vat.val(invalidSamples[i]);
  362. this.bv.validate();
  363. expect(this.bv.isValid()).toEqual(false);
  364. }
  365. });
  366. it('Iceland VAT (VSK) number', function() {
  367. // Valid samples
  368. var validSamples = ['IS11111', 'IS111111'];
  369. for (var i in validSamples) {
  370. this.bv.resetForm();
  371. this.$vat.val(validSamples[i]);
  372. this.bv.validate();
  373. expect(this.bv.isValid()).toBeTruthy();
  374. }
  375. // Invalid samples
  376. var invalidSamples = ['IS1234567', 'IS123456ABC'];
  377. for (i in invalidSamples) {
  378. this.bv.resetForm();
  379. this.$vat.val(invalidSamples[i]);
  380. this.bv.validate();
  381. expect(this.bv.isValid()).toEqual(false);
  382. }
  383. });
  384. it('Italian VAT number', function() {
  385. // Valid samples
  386. var validSamples = ['IT00743110157'];
  387. for (var i in validSamples) {
  388. this.bv.resetForm();
  389. this.$vat.val(validSamples[i]);
  390. this.bv.validate();
  391. expect(this.bv.isValid()).toBeTruthy();
  392. }
  393. // Invalid samples
  394. var invalidSamples = ['IT00743110158'];
  395. for (i in invalidSamples) {
  396. this.bv.resetForm();
  397. this.$vat.val(invalidSamples[i]);
  398. this.bv.validate();
  399. expect(this.bv.isValid()).toEqual(false);
  400. }
  401. });
  402. it('Lithuanian VAT number', function() {
  403. // Valid samples
  404. var validSamples = ['LT119511515', 'LT100001919017', 'LT100004801610'];
  405. for (var i in validSamples) {
  406. this.bv.resetForm();
  407. this.$vat.val(validSamples[i]);
  408. this.bv.validate();
  409. expect(this.bv.isValid()).toBeTruthy();
  410. }
  411. // Invalid samples
  412. var invalidSamples = ['LT100001919018'];
  413. for (i in invalidSamples) {
  414. this.bv.resetForm();
  415. this.$vat.val(invalidSamples[i]);
  416. this.bv.validate();
  417. expect(this.bv.isValid()).toEqual(false);
  418. }
  419. });
  420. it('Luxembourg VAT number', function() {
  421. // Valid samples
  422. var validSamples = ['LU15027442'];
  423. for (var i in validSamples) {
  424. this.bv.resetForm();
  425. this.$vat.val(validSamples[i]);
  426. this.bv.validate();
  427. expect(this.bv.isValid()).toBeTruthy();
  428. }
  429. // Invalid samples
  430. var invalidSamples = ['LU15027443'];
  431. for (i in invalidSamples) {
  432. this.bv.resetForm();
  433. this.$vat.val(invalidSamples[i]);
  434. this.bv.validate();
  435. expect(this.bv.isValid()).toEqual(false);
  436. }
  437. });
  438. it('Latvian VAT number', function() {
  439. // Valid samples
  440. var validSamples = ['LV40003521600', 'LV16117519997'];
  441. for (var i in validSamples) {
  442. this.bv.resetForm();
  443. this.$vat.val(validSamples[i]);
  444. this.bv.validate();
  445. expect(this.bv.isValid()).toBeTruthy();
  446. }
  447. // Invalid samples
  448. var invalidSamples = ['LV40003521601', 'LV16137519997'];
  449. for (i in invalidSamples) {
  450. this.bv.resetForm();
  451. this.$vat.val(invalidSamples[i]);
  452. this.bv.validate();
  453. expect(this.bv.isValid()).toEqual(false);
  454. }
  455. });
  456. it('Maltese VAT number', function() {
  457. // Valid samples
  458. var validSamples = ['MT11679112'];
  459. for (var i in validSamples) {
  460. this.bv.resetForm();
  461. this.$vat.val(validSamples[i]);
  462. this.bv.validate();
  463. expect(this.bv.isValid()).toBeTruthy();
  464. }
  465. // Invalid samples
  466. var invalidSamples = ['MT11679113'];
  467. for (i in invalidSamples) {
  468. this.bv.resetForm();
  469. this.$vat.val(invalidSamples[i]);
  470. this.bv.validate();
  471. expect(this.bv.isValid()).toEqual(false);
  472. }
  473. });
  474. it('Dutch VAT number', function() {
  475. // Valid samples
  476. var validSamples = ['NL004495445B01'];
  477. for (var i in validSamples) {
  478. this.bv.resetForm();
  479. this.$vat.val(validSamples[i]);
  480. this.bv.validate();
  481. expect(this.bv.isValid()).toBeTruthy();
  482. }
  483. // Invalid samples
  484. var invalidSamples = ['NL123456789B90'];
  485. for (i in invalidSamples) {
  486. this.bv.resetForm();
  487. this.$vat.val(invalidSamples[i]);
  488. this.bv.validate();
  489. expect(this.bv.isValid()).toEqual(false);
  490. }
  491. });
  492. it('Polish VAT number', function() {
  493. // Valid samples
  494. var validSamples = ['PL8567346215'];
  495. for (var i in validSamples) {
  496. this.bv.resetForm();
  497. this.$vat.val(validSamples[i]);
  498. this.bv.validate();
  499. expect(this.bv.isValid()).toBeTruthy();
  500. }
  501. // Invalid samples
  502. var invalidSamples = ['PL8567346216'];
  503. for (i in invalidSamples) {
  504. this.bv.resetForm();
  505. this.$vat.val(invalidSamples[i]);
  506. this.bv.validate();
  507. expect(this.bv.isValid()).toEqual(false);
  508. }
  509. });
  510. it('Portuguese VAT number', function() {
  511. // Valid samples
  512. var validSamples = ['PT501964843'];
  513. for (var i in validSamples) {
  514. this.bv.resetForm();
  515. this.$vat.val(validSamples[i]);
  516. this.bv.validate();
  517. expect(this.bv.isValid()).toBeTruthy();
  518. }
  519. // Invalid samples
  520. var invalidSamples = ['PT501964842'];
  521. for (i in invalidSamples) {
  522. this.bv.resetForm();
  523. this.$vat.val(invalidSamples[i]);
  524. this.bv.validate();
  525. expect(this.bv.isValid()).toEqual(false);
  526. }
  527. });
  528. it('Romanian VAT number', function() {
  529. // Valid samples
  530. var validSamples = ['RO18547290'];
  531. for (var i in validSamples) {
  532. this.bv.resetForm();
  533. this.$vat.val(validSamples[i]);
  534. this.bv.validate();
  535. expect(this.bv.isValid()).toBeTruthy();
  536. }
  537. // Invalid samples
  538. var invalidSamples = ['RO18547291'];
  539. for (i in invalidSamples) {
  540. this.bv.resetForm();
  541. this.$vat.val(invalidSamples[i]);
  542. this.bv.validate();
  543. expect(this.bv.isValid()).toEqual(false);
  544. }
  545. });
  546. it('Swedish VAT number', function() {
  547. // Valid samples
  548. var validSamples = ['SE123456789701'];
  549. for (var i in validSamples) {
  550. this.bv.resetForm();
  551. this.$vat.val(validSamples[i]);
  552. this.bv.validate();
  553. expect(this.bv.isValid()).toBeTruthy();
  554. }
  555. // Invalid samples
  556. var invalidSamples = ['SE123456789101'];
  557. for (i in invalidSamples) {
  558. this.bv.resetForm();
  559. this.$vat.val(invalidSamples[i]);
  560. this.bv.validate();
  561. expect(this.bv.isValid()).toEqual(false);
  562. }
  563. });
  564. it('Slovenian VAT number', function() {
  565. // Valid samples
  566. var validSamples = ['SI50223054'];
  567. for (var i in validSamples) {
  568. this.bv.resetForm();
  569. this.$vat.val(validSamples[i]);
  570. this.bv.validate();
  571. expect(this.bv.isValid()).toBeTruthy();
  572. }
  573. // Invalid samples
  574. var invalidSamples = ['SI50223055'];
  575. for (i in invalidSamples) {
  576. this.bv.resetForm();
  577. this.$vat.val(invalidSamples[i]);
  578. this.bv.validate();
  579. expect(this.bv.isValid()).toEqual(false);
  580. }
  581. });
  582. it('Slovak VAT number', function() {
  583. // Valid samples
  584. var validSamples = ['SK2022749619'];
  585. for (var i in validSamples) {
  586. this.bv.resetForm();
  587. this.$vat.val(validSamples[i]);
  588. this.bv.validate();
  589. expect(this.bv.isValid()).toBeTruthy();
  590. }
  591. // Invalid samples
  592. var invalidSamples = ['SK2022749618'];
  593. for (i in invalidSamples) {
  594. this.bv.resetForm();
  595. this.$vat.val(invalidSamples[i]);
  596. this.bv.validate();
  597. expect(this.bv.isValid()).toEqual(false);
  598. }
  599. });
  600. it('South African VAT number', function() {
  601. // Valid samples
  602. var validSamples = ['ZA4012345678'];
  603. for (var i in validSamples) {
  604. this.bv.resetForm();
  605. this.$vat.val(validSamples[i]);
  606. this.bv.validate();
  607. expect(this.bv.isValid()).toBeTruthy();
  608. }
  609. // Invalid samples
  610. var invalidSamples = ['ZA40123456789', 'ZA0123456789'];
  611. for (i in invalidSamples) {
  612. this.bv.resetForm();
  613. this.$vat.val(invalidSamples[i]);
  614. this.bv.validate();
  615. expect(this.bv.isValid()).toEqual(false);
  616. }
  617. });
  618. });