129 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			V
		
	
	
| import os
 | |
| 
 | |
| const test_path = 'vcreate_test'
 | |
| 
 | |
| fn init_and_check() ? {
 | |
| 	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
 | |
| 
 | |
| 	assert os.read_file('vcreate_test.v')? == [
 | |
| 		'module main\n',
 | |
| 		'fn main() {',
 | |
| 		"	println('Hello World!')",
 | |
| 		'}',
 | |
| 		'',
 | |
| 	].join_lines()
 | |
| 
 | |
| 	assert os.read_file('v.mod')? == [
 | |
| 		'Module {',
 | |
| 		"	name: 'vcreate_test'",
 | |
| 		"	description: ''",
 | |
| 		"	version: ''",
 | |
| 		"	license: ''",
 | |
| 		'	dependencies: []',
 | |
| 		'}',
 | |
| 		'',
 | |
| 	].join_lines()
 | |
| 
 | |
| 	assert os.read_file('.gitignore')? == [
 | |
| 		'# Binaries for programs and plugins',
 | |
| 		'main',
 | |
| 		'vcreate_test',
 | |
| 		'*.exe',
 | |
| 		'*.exe~',
 | |
| 		'*.so',
 | |
| 		'*.dylib',
 | |
| 		'*.dll',
 | |
| 		'vls.log',
 | |
| 		'',
 | |
| 	].join_lines()
 | |
| 
 | |
| 	assert os.read_file('.gitattributes')? == [
 | |
| 		'*.v linguist-language=V text=auto eol=lf',
 | |
| 		'*.vv linguist-language=V text=auto eol=lf',
 | |
| 		'*.vsh linguist-language=V text=auto eol=lf',
 | |
| 		'**/v.mod linguist-language=V text=auto eol=lf',
 | |
| 		'',
 | |
| 	].join_lines()
 | |
| 
 | |
| 	assert os.read_file('.editorconfig')? == [
 | |
| 		'[*]',
 | |
| 		'charset = utf-8',
 | |
| 		'end_of_line = lf',
 | |
| 		'insert_final_newline = true',
 | |
| 		'trim_trailing_whitespace = true',
 | |
| 		'',
 | |
| 		'[*.v]',
 | |
| 		'indent_style = tab',
 | |
| 		'indent_size = 4',
 | |
| 		'',
 | |
| 	].join_lines()
 | |
| }
 | |
| 
 | |
| fn test_v_init() ? {
 | |
| 	dir := os.join_path(os.temp_dir(), test_path)
 | |
| 	os.rmdir_all(dir) or {}
 | |
| 	os.mkdir(dir) or {}
 | |
| 	defer {
 | |
| 		os.rmdir_all(dir) or {}
 | |
| 	}
 | |
| 	os.chdir(dir)?
 | |
| 
 | |
| 	init_and_check()?
 | |
| }
 | |
| 
 | |
| fn test_v_init_in_git_dir() ? {
 | |
| 	dir := os.join_path(os.temp_dir(), test_path)
 | |
| 	os.rmdir_all(dir) or {}
 | |
| 	os.mkdir(dir) or {}
 | |
| 	defer {
 | |
| 		os.rmdir_all(dir) or {}
 | |
| 	}
 | |
| 	os.chdir(dir)?
 | |
| 	os.execute_or_exit('git init .')
 | |
| 	init_and_check()?
 | |
| }
 | |
| 
 | |
| fn test_v_init_no_overwrite_gitignore() ? {
 | |
| 	dir := os.join_path(os.temp_dir(), test_path)
 | |
| 	os.rmdir_all(dir) or {}
 | |
| 	os.mkdir(dir) or {}
 | |
| 	os.write_file('$dir/.gitignore', 'blah')?
 | |
| 	defer {
 | |
| 		os.rmdir_all(dir) or {}
 | |
| 	}
 | |
| 	os.chdir(dir)?
 | |
| 
 | |
| 	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
 | |
| 
 | |
| 	assert os.read_file('.gitignore')? == 'blah'
 | |
| }
 | |
| 
 | |
| fn test_v_init_no_overwrite_gitattributes_and_editorconfig() ? {
 | |
| 	git_attributes_content := '*.v linguist-language=V text=auto eol=lf'
 | |
| 	editor_config_content := '[*]
 | |
| charset = utf-8
 | |
| end_of_line = lf
 | |
| insert_final_newline = true
 | |
| trim_trailing_whitespace = true
 | |
| 
 | |
| [*.v]
 | |
| indent_style = tab
 | |
| indent_size = 4
 | |
| '
 | |
| 
 | |
| 	dir := os.join_path(os.temp_dir(), test_path)
 | |
| 	os.rmdir_all(dir) or {}
 | |
| 	os.mkdir(dir) or {}
 | |
| 	os.write_file('$dir/.gitattributes', git_attributes_content)?
 | |
| 	os.write_file('$dir/.editorconfig', editor_config_content)?
 | |
| 	defer {
 | |
| 		os.rmdir_all(dir) or {}
 | |
| 	}
 | |
| 	os.chdir(dir)?
 | |
| 
 | |
| 	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
 | |
| 
 | |
| 	assert os.read_file('.gitattributes')? == git_attributes_content
 | |
| 	assert os.read_file('.editorconfig')? == editor_config_content
 | |
| }
 |