learn-test 3.3.0.pre.1 → 3.3.0.pre.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/learn_test.rb +3 -1
- data/lib/learn_test/git/wip/base.rb +2 -6
- data/lib/learn_test/git/wip/branch.rb +4 -2
- data/lib/learn_test/git/wip/errors/base_error.rb +11 -0
- data/lib/learn_test/git/wip/errors/no_changes_error.rb +15 -0
- data/lib/learn_test/git/wip/errors/no_commits_error.rb +17 -0
- data/lib/learn_test/git/wip/reference.rb +26 -0
- data/lib/learn_test/reporter.rb +1 -1
- data/lib/learn_test/version.rb +1 -1
- data/spec/features/rspec_unit_spec.rb +4 -3
- data/spec/learn_test/git/wip/base_spec.rb +17 -12
- data/spec/learn_test/git/wip/branch_spec.rb +1 -1
- data/spec/learn_test/git/wip/errors/base_error_spec.rb +7 -0
- data/spec/learn_test/git/wip/errors/no_changes_error_spec.rb +18 -0
- data/spec/learn_test/git/wip/errors/no_commits_error_spec.rb +18 -0
- data/spec/learn_test/reporter_spec.rb +14 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/git.rb +17 -0
- metadata +14 -5
- data/lib/learn_test/git/wip/error.rb +0 -23
- data/spec/learn_test/git/wip/error_spec.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7906a9d22e49996f18bf0b8c0cd1c7d76f5ef27447ee235b09403c58b6132340
|
4
|
+
data.tar.gz: 98f97cbd9e8d2b0bd643ff95e9e6f5ec11988a74a4e1a17819d303cbb2b9bba8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ded3c645f8ae0ef2f7a2ab4cf39819b42f6c82a5a93e7876ad2ab625199d033a311fbbff03adf736a6ac64cbb655ae03eb35147abeca20ee13a59efe6979453
|
7
|
+
data.tar.gz: d41f77188f4fb422e216d0d808ab817d7a3ec915ca12376f62cdbecb39384e5256b100b4135869cb8e3e3dc4b4aeb2d52eee1ef24369fcf7a3466be130587df5
|
data/lib/learn_test.rb
CHANGED
@@ -10,7 +10,6 @@ module LearnTest
|
|
10
10
|
module Wip
|
11
11
|
class Base < ::Git::Path
|
12
12
|
TEMPFILE = '.wip'
|
13
|
-
PREFIX = 'refs/wip/'
|
14
13
|
|
15
14
|
attr_reader :working_branch, :wip_branch
|
16
15
|
|
@@ -21,11 +20,11 @@ module LearnTest
|
|
21
20
|
|
22
21
|
current_branch = @base.current_branch
|
23
22
|
|
24
|
-
raise NoCommitsError, 'master' if current_branch.nil? # TODO: Swap to `main`?
|
23
|
+
raise Errors::NoCommitsError, 'master' if current_branch.nil? # TODO: Swap to `main`?
|
25
24
|
|
26
25
|
@tmp = Tempfile.new(TEMPFILE)
|
27
26
|
@working_branch = Branch.new(base: @base, name: current_branch)
|
28
|
-
@wip_branch =
|
27
|
+
@wip_branch = Reference.new(base: @base, name: current_branch)
|
29
28
|
end
|
30
29
|
|
31
30
|
def process!
|
@@ -44,9 +43,6 @@ module LearnTest
|
|
44
43
|
new_tree = build_new_tree(@wip_branch.parent)
|
45
44
|
@base.diff(new_tree, @wip_branch.parent)
|
46
45
|
|
47
|
-
# tree_diff = @base.diff(new_tree, @wip_branch.parent)
|
48
|
-
# raise NoChangesError, @wip_branch if tree_diff.count.zero?
|
49
|
-
|
50
46
|
commit = @base.commit_tree(new_tree, parent: @wip_branch.parent)
|
51
47
|
|
52
48
|
@base.lib.send(:command, 'update-ref', ['-m', @message, @wip_branch, commit.objectish])
|
@@ -16,11 +16,13 @@ module LearnTest
|
|
16
16
|
begin
|
17
17
|
@base.revparse(@name)
|
18
18
|
rescue ::Git::GitExecuteError => e
|
19
|
+
regex = Errors::NoCommitsError::REGEX
|
20
|
+
|
19
21
|
if raise_no_commits
|
20
|
-
raise e.message.match(
|
22
|
+
raise e.message.match(regex) ? Errors::NoCommitsError.new(@name) : e
|
21
23
|
end
|
22
24
|
|
23
|
-
raise unless e.message.match(
|
25
|
+
raise unless e.message.match(regex)
|
24
26
|
|
25
27
|
false
|
26
28
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LearnTest
|
4
|
+
module Git
|
5
|
+
module Wip
|
6
|
+
module Errors
|
7
|
+
class NoCommitsError < BaseError
|
8
|
+
REGEX = /unknown revision or path not in the working tree/i.freeze
|
9
|
+
|
10
|
+
def initialize(branch)
|
11
|
+
super "Branch `#{branch}` doesn't have any commits. Please commit and try again."
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module LearnTest
|
6
|
+
module Git
|
7
|
+
module Wip
|
8
|
+
class Reference < Branch
|
9
|
+
attr_accessor :parent
|
10
|
+
|
11
|
+
PREFIX = 'refs/wip/'
|
12
|
+
|
13
|
+
def initialize(base:, name:)
|
14
|
+
dir = File.join(base.repo.path, PREFIX)
|
15
|
+
file = File.join(dir, name)
|
16
|
+
sha = base.log(1)[0].sha
|
17
|
+
|
18
|
+
FileUtils.mkdir_p(dir, { mode: 0755 }) unless Dir.exist?(dir)
|
19
|
+
File.open(file, 'w+') { |f| f.puts sha } unless File.exist?(file)
|
20
|
+
|
21
|
+
super(base: base, name: "#{PREFIX}#{name}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/learn_test/reporter.rb
CHANGED
@@ -68,7 +68,7 @@ module LearnTest
|
|
68
68
|
repo.push('origin', "#{res.wip_branch}:refs/heads/fis-wip", { force: true })
|
69
69
|
rescue ::Git::GitExecuteError => e
|
70
70
|
if @debug
|
71
|
-
puts 'There was a problem connecting to
|
71
|
+
puts 'There was a problem connecting to GitHub. Not pushing current branch state.'.red
|
72
72
|
puts e.message
|
73
73
|
end
|
74
74
|
end
|
data/lib/learn_test/version.rb
CHANGED
@@ -12,9 +12,10 @@ describe 'Running a RSpec Unit Test', type: :aruba do
|
|
12
12
|
before :each do
|
13
13
|
copy '%/rspec-unit-spec', 'example'
|
14
14
|
cd 'example'
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
|
16
|
+
git_init
|
17
|
+
git_add
|
18
|
+
git_commit 'Initial Commit'
|
18
19
|
end
|
19
20
|
|
20
21
|
def run(flags = '')
|
@@ -31,27 +31,32 @@ describe LearnTest::Git::Wip::Base do
|
|
31
31
|
create_directory 'example'
|
32
32
|
cd 'example'
|
33
33
|
write_file 'README.md', 'Hello World'
|
34
|
-
|
34
|
+
git_init
|
35
35
|
|
36
36
|
if commit # rubocop:disable Style/GuardClause
|
37
|
-
|
38
|
-
|
37
|
+
git_add
|
38
|
+
git_commit 'Initial Commit'
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
context 'no
|
43
|
-
before(:each) { initialize_repo
|
42
|
+
context 'no refs/wip' do
|
43
|
+
before(:each) { initialize_repo }
|
44
44
|
|
45
|
-
it 'should
|
46
|
-
expect
|
45
|
+
it 'should create refs/wip' do
|
46
|
+
expect(FileUtils)
|
47
|
+
.to receive(:mkdir_p)
|
48
|
+
.with("#{path}/.git/refs/wip/", { mode: 0755 })
|
49
|
+
.and_call_original
|
50
|
+
|
51
|
+
instance.process!
|
47
52
|
end
|
48
53
|
end
|
49
54
|
|
50
|
-
|
51
|
-
before(:each) { initialize_repo }
|
55
|
+
context 'no commits' do
|
56
|
+
before(:each) { initialize_repo(commit: false) }
|
52
57
|
|
53
58
|
it 'should raise' do
|
54
|
-
expect { instance.process! }.to raise_error(LearnTest::Git::Wip::
|
59
|
+
expect { instance.process! }.to raise_error(LearnTest::Git::Wip::Errors::NoCommitsError)
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
@@ -74,8 +79,8 @@ describe LearnTest::Git::Wip::Base do
|
|
74
79
|
initialize_repo
|
75
80
|
write_file 'test.rb', ''
|
76
81
|
|
77
|
-
|
78
|
-
|
82
|
+
git_add
|
83
|
+
git_commit 'foo'
|
79
84
|
end
|
80
85
|
|
81
86
|
it 'should process successfully' do
|
@@ -91,7 +91,7 @@ describe LearnTest::Git::Wip::Branch do
|
|
91
91
|
expect do
|
92
92
|
branch.last_revision(raise_no_commits: true)
|
93
93
|
end.to raise_error(
|
94
|
-
LearnTest::Git::Wip::NoCommitsError, "Branch `#{name}` doesn't have any commits. Please commit and try again."
|
94
|
+
LearnTest::Git::Wip::Errors::NoCommitsError, "Branch `#{name}` doesn't have any commits. Please commit and try again."
|
95
95
|
)
|
96
96
|
end
|
97
97
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe LearnTest::Git::Wip::Errors::NoChangesError do
|
4
|
+
let(:branch) { rand(0..999_999).to_s }
|
5
|
+
|
6
|
+
it 'should inherit from Error' do
|
7
|
+
expect(described_class).to be < LearnTest::Git::Wip::Errors::BaseError
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should require a branch' do
|
11
|
+
expect { described_class.new }.to raise_error(ArgumentError)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should have the correct messaging' do
|
15
|
+
error = described_class.new(branch)
|
16
|
+
expect(error.message).to eq "No changes found on `#{branch}`"
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe LearnTest::Git::Wip::Errors::NoCommitsError do
|
4
|
+
let(:branch) { rand(0..999_999).to_s }
|
5
|
+
|
6
|
+
it 'should inherit from Error' do
|
7
|
+
expect(described_class).to be < LearnTest::Git::Wip::Errors::BaseError
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should require a branch' do
|
11
|
+
expect { described_class.new }.to raise_error(ArgumentError)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should have the correct messaging' do
|
15
|
+
error = described_class.new(branch)
|
16
|
+
expect(error.message).to eq "Branch `#{branch}` doesn't have any commits. Please commit and try again."
|
17
|
+
end
|
18
|
+
end
|
@@ -96,6 +96,20 @@ describe LearnTest::Reporter do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
it 'posts results to the service endpoint' do
|
99
|
+
branch = double(LearnTest::Git::Wip::Branch)
|
100
|
+
branch_name = 'bar'
|
101
|
+
|
102
|
+
expect(LearnTest::Git).to receive(:open).and_return(git_base)
|
103
|
+
expect(git_base).to receive(:wip).and_return(git_wip)
|
104
|
+
expect(git_wip).to receive(:success?).and_return(true)
|
105
|
+
|
106
|
+
expect(branch).to receive(:to_s).and_return(branch_name)
|
107
|
+
expect(git_wip).to receive(:wip_branch).and_return(branch)
|
108
|
+
|
109
|
+
expect(git_base)
|
110
|
+
.to receive(:push)
|
111
|
+
.with('origin', "#{branch_name}:refs/heads/fis-wip", { force: true })
|
112
|
+
|
99
113
|
reporter.report
|
100
114
|
|
101
115
|
expect(client).to have_received(:post_results)
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,12 @@ SimpleCov.start
|
|
8
8
|
|
9
9
|
require_relative '../lib/learn_test'
|
10
10
|
|
11
|
+
support_dir = File.join('./', 'spec', 'support', '**', '*.rb')
|
12
|
+
Dir.glob(support_dir).each { |f| require f }
|
13
|
+
|
11
14
|
RSpec.configure do |config|
|
15
|
+
config.filter_run focus: true
|
16
|
+
|
12
17
|
config.expect_with :rspec do |expectations|
|
13
18
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
14
19
|
end
|
data/spec/support/git.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
def git_set_user
|
2
|
+
run_command_and_stop 'git config user.email "info@flatironschool.com"'
|
3
|
+
run_command_and_stop 'git config user.name "Flatiron School"'
|
4
|
+
end
|
5
|
+
|
6
|
+
def git_init
|
7
|
+
run_command_and_stop 'git init'
|
8
|
+
git_set_user
|
9
|
+
end
|
10
|
+
|
11
|
+
def git_add(files = '.')
|
12
|
+
run_command_and_stop "git add #{files}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def git_commit(msg)
|
16
|
+
run_command_and_stop "git commit -m \"#{msg}\""
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.0.pre.
|
4
|
+
version: 3.3.0.pre.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flatiron School
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -184,7 +184,10 @@ files:
|
|
184
184
|
- lib/learn_test/git.rb
|
185
185
|
- lib/learn_test/git/wip/base.rb
|
186
186
|
- lib/learn_test/git/wip/branch.rb
|
187
|
-
- lib/learn_test/git/wip/
|
187
|
+
- lib/learn_test/git/wip/errors/base_error.rb
|
188
|
+
- lib/learn_test/git/wip/errors/no_changes_error.rb
|
189
|
+
- lib/learn_test/git/wip/errors/no_commits_error.rb
|
190
|
+
- lib/learn_test/git/wip/reference.rb
|
188
191
|
- lib/learn_test/github_interactor.rb
|
189
192
|
- lib/learn_test/js_strategy.rb
|
190
193
|
- lib/learn_test/learn_oauth_token_parser.rb
|
@@ -220,7 +223,9 @@ files:
|
|
220
223
|
- spec/fixtures/rspec-unit-spec/spec/spec_helper.rb
|
221
224
|
- spec/learn_test/git/wip/base_spec.rb
|
222
225
|
- spec/learn_test/git/wip/branch_spec.rb
|
223
|
-
- spec/learn_test/git/wip/
|
226
|
+
- spec/learn_test/git/wip/errors/base_error_spec.rb
|
227
|
+
- spec/learn_test/git/wip/errors/no_changes_error_spec.rb
|
228
|
+
- spec/learn_test/git/wip/errors/no_commits_error_spec.rb
|
224
229
|
- spec/learn_test/git_spec.rb
|
225
230
|
- spec/learn_test/reporter_spec.rb
|
226
231
|
- spec/learn_test/username_parser_spec.rb
|
@@ -228,6 +233,7 @@ files:
|
|
228
233
|
- spec/lib/learn_test/strategies/none_spec.rb
|
229
234
|
- spec/repo_parser_spec.rb
|
230
235
|
- spec/spec_helper.rb
|
236
|
+
- spec/support/git.rb
|
231
237
|
homepage: https://github.com/learn-co/learn-test
|
232
238
|
licenses:
|
233
239
|
- MIT
|
@@ -263,7 +269,9 @@ test_files:
|
|
263
269
|
- spec/fixtures/rspec-unit-spec/spec/spec_helper.rb
|
264
270
|
- spec/learn_test/git/wip/base_spec.rb
|
265
271
|
- spec/learn_test/git/wip/branch_spec.rb
|
266
|
-
- spec/learn_test/git/wip/
|
272
|
+
- spec/learn_test/git/wip/errors/base_error_spec.rb
|
273
|
+
- spec/learn_test/git/wip/errors/no_changes_error_spec.rb
|
274
|
+
- spec/learn_test/git/wip/errors/no_commits_error_spec.rb
|
267
275
|
- spec/learn_test/git_spec.rb
|
268
276
|
- spec/learn_test/reporter_spec.rb
|
269
277
|
- spec/learn_test/username_parser_spec.rb
|
@@ -271,3 +279,4 @@ test_files:
|
|
271
279
|
- spec/lib/learn_test/strategies/none_spec.rb
|
272
280
|
- spec/repo_parser_spec.rb
|
273
281
|
- spec/spec_helper.rb
|
282
|
+
- spec/support/git.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module LearnTest
|
4
|
-
module Git
|
5
|
-
module Wip
|
6
|
-
class Error < StandardError; end
|
7
|
-
|
8
|
-
class NoChangesError < Error
|
9
|
-
def initialize(branch)
|
10
|
-
super "No changes found on `#{branch}`"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class NoCommitsError < Error
|
15
|
-
REGEX = /unknown revision or path not in the working tree/i.freeze
|
16
|
-
|
17
|
-
def initialize(branch)
|
18
|
-
super "Branch `#{branch}` doesn't have any commits. Please commit and try again."
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
describe LearnTest::Git::Wip do
|
4
|
-
let(:branch) { rand(0..999_999).to_s }
|
5
|
-
|
6
|
-
describe LearnTest::Git::Wip::Error do
|
7
|
-
it 'should inherit from StandardError' do
|
8
|
-
expect(described_class).to be < StandardError
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe LearnTest::Git::Wip::NoChangesError do
|
13
|
-
it 'should inherit from Error' do
|
14
|
-
expect(described_class).to be < LearnTest::Git::Wip::Error
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should require a branch' do
|
18
|
-
expect { described_class.new }.to raise_error(ArgumentError)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should have the correct messaging' do
|
22
|
-
error = described_class.new(branch)
|
23
|
-
expect(error.message).to eq "No changes found on `#{branch}`"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe LearnTest::Git::Wip::NoCommitsError do
|
28
|
-
it 'should inherit from Error' do
|
29
|
-
expect(described_class).to be < LearnTest::Git::Wip::Error
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'should require a branch' do
|
33
|
-
expect { described_class.new }.to raise_error(ArgumentError)
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should have the correct messaging' do
|
37
|
-
error = described_class.new(branch)
|
38
|
-
expect(error.message).to eq "Branch `#{branch}` doesn't have any commits. Please commit and try again."
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|