/
init_spec.rb
73 lines (57 loc) · 2.16 KB
/
init_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# typed: strict
# frozen_string_literal: true
require "spec_helper"
require "yaml"
module Tapioca
class InitSpec < SpecWithProject
describe "cli::init" do
before(:all) do
project.bundle_install
end
after do
@project.remove("sorbet/config")
@project.remove("sorbet/tapioca")
@project.remove("bin/tapioca")
end
it "must create proper files" do
result = @project.tapioca("init")
assert_includes(result.out, "create sorbet/config")
assert_includes(result.out, "create sorbet/tapioca/config.yml")
assert_includes(result.out, "create sorbet/tapioca/require.rb")
assert_includes(result.out, "create bin/tapioca")
assert_equal(<<~CONFIG, @project.read("sorbet/config"))
--dir
.
--ignore=vendor/
CONFIG
assert_project_file_equal("sorbet/tapioca/require.rb", <<~RB)
# typed: true
# frozen_string_literal: true
# Add your extra requires here (`bin/tapioca require` can be used to boostrap this list)
RB
assert_project_file_exist("bin/tapioca")
tapioca_config = YAML.load(@project.read("sorbet/tapioca/config.yml"))
assert_equal(["gem", "dsl"], tapioca_config.keys)
assert_nil(tapioca_config["gem"])
assert_nil(tapioca_config["dsl"])
assert_empty_stderr(result)
assert_success_status(result)
end
it "must not overwrite files" do
@project.write("bin/tapioca")
@project.write("sorbet/config")
@project.write("sorbet/tapioca/require.rb")
@project.write("sorbet/tapioca/config.yml")
result = @project.tapioca("init")
assert_includes(result.out, "skip sorbet/config")
assert_includes(result.out, "skip sorbet/tapioca/config.yml")
assert_includes(result.out, "skip sorbet/tapioca/require.rb")
assert_includes(result.out, "force bin/tapioca")
assert_empty(@project.read("sorbet/config"))
assert_empty(@project.read("sorbet/tapioca/require.rb"))
assert_empty_stderr(result)
assert_success_status(result)
end
end
end
end