| 1 | import v.util.diff |
| 2 | import os |
| 3 | import term |
| 4 | |
| 5 | const tdir = os.join_path(os.vtmp_dir(), 'diff_test') |
| 6 | |
| 7 | fn testsuite_begin() { |
| 8 | os.mkdir_all(tdir)! |
| 9 | } |
| 10 | |
| 11 | fn testsuite_end() { |
| 12 | os.rmdir_all(tdir) or {} |
| 13 | } |
| 14 | |
| 15 | fn test_compare_files() { |
| 16 | f1 := "Module{ |
| 17 | name: 'Foo' |
| 18 | description: 'Awesome V module.' |
| 19 | version: '0.0.0' |
| 20 | dependencies: [] |
| 21 | } |
| 22 | " |
| 23 | f2 := "Module{ |
| 24 | name: 'foo' |
| 25 | description: 'Awesome V module.' |
| 26 | version: '0.1.0' |
| 27 | license: 'MIT' |
| 28 | dependencies: [] |
| 29 | } |
| 30 | " |
| 31 | p1 := os.join_path(tdir, '${@FN}_f1.txt') |
| 32 | p2 := os.join_path(tdir, '${@FN}_f2.txt') |
| 33 | os.write_file(p1, f1)! |
| 34 | os.write_file(p2, f2)! |
| 35 | |
| 36 | mut res := term.strip_ansi(diff.compare_files(p1, p2)!) |
| 37 | assert res.contains("name: 'Foo'"), res |
| 38 | assert res.contains("name: 'foo'"), res |
| 39 | |
| 40 | res = diff.compare_files(p1, p2)! |
| 41 | assert res.contains("+\tname: 'foo'"), res |
| 42 | assert res.contains("-\tversion: '0.0.0'"), res |
| 43 | assert res.contains("+\tversion: '0.1.0'"), res |
| 44 | assert res.contains("+\tlicense: 'MIT'"), res |
| 45 | } |
| 46 | |
| 47 | fn test_compare_string() { |
| 48 | mut res := diff.compare_text('abc', 'abcd')! |
| 49 | println(res) |
| 50 | assert res.contains('-abc'), res |
| 51 | assert res.contains('+abcd'), res |
| 52 | assert !res.contains('No newline at end of file'), res |
| 53 | } |
| 54 | |