v2 / vlib / v / util / diff / diff_test.v
53 lines · 46 sloc · 1.13 KB · bc0662064896e701a9f21d762ab9440177149fa6
Raw
1import v.util.diff
2import os
3import term
4
5const tdir = os.join_path(os.vtmp_dir(), 'diff_test')
6
7fn testsuite_begin() {
8 os.mkdir_all(tdir)!
9}
10
11fn testsuite_end() {
12 os.rmdir_all(tdir) or {}
13}
14
15fn 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
47fn 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