1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/cmd/tools/vcreate_test.v
Ryan Roden-Corrent 30fac1f877
toosl: fix v init - terminate newly created files with newlines, add a test (#10480)
* vcreate: Add test for `v init`.

* vcreate: Init git properly with no dir arg.

`v init` would fail to create a .gitignore file. When not providing a
dir arg, passing "" to create_git_repo would result in:

```
V panic: failed to create gitignore: failed to open file "/.gitignore"
```

* vcreate: Terminate files with newline.

Fixes #10478.
2021-06-16 19:57:51 +03:00

48 lines
789 B
V

import os
const test_path = 'vcreate_test'
fn test_v_init() ? {
dir := os.join_path(os.temp_dir(), test_path)
os.rmdir_all(dir) or {}
os.mkdir(dir) ?
defer {
os.rmdir_all(dir) or {}
}
os.chdir(dir)
vexe := os.getenv('VEXE')
os.execute_or_panic('$vexe init')
assert os.read_file('vcreate_test.v') ? == [
'module main\n',
'fn main() {',
" println('Hello World!')",
'}',
'',
].join('\n')
assert os.read_file('v.mod') ? == [
'Module {',
" name: 'vcreate_test'",
" description: ''",
" version: ''",
" license: ''",
' dependencies: []',
'}',
'',
].join('\n')
assert os.read_file('.gitignore') ? == [
'# Binaries for programs and plugins',
'main',
'vcreate_test',
'*.exe',
'*.exe~',
'*.so',
'*.dylib',
'*.dll',
'',
].join('\n')
}