capybara_spa 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +60 -3
- data/Gemfile.lock +3 -1
- data/capybara_spa.gemspec +1 -0
- data/lib/capybara_spa.rb +1 -1
- data/lib/capybara_spa/server/ng_static_server.rb +27 -12
- data/lib/capybara_spa/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19ed7589902a6d0325189f481b625b7b51c76f69e1db77007908d782ec8f8284
|
4
|
+
data.tar.gz: 5e3812be9fffb593695a0c29b3aa989a9d0930410883bb8040f062a308b41b64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8dfff66e5fd86435ff0daa5f1786d537fb581c55d588923b7d373811d0fa4426567072134d8ad82c621fc5f514ae9b3e8e61fd86f55348b05784f665a7f2c45e
|
7
|
+
data.tar.gz: 9c2b0307ddb544cb7745cc9922ea7ec78a435f1cc4cc9c74bd1a34e480a9faad08ac7561a6d46cf6f608c8e2ac73801e6f04dc082b7e10d408bc100196352d2e
|
data/.travis.yml
CHANGED
@@ -1,5 +1,62 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
language: node_js
|
2
|
+
sudo: required
|
3
|
+
node_js:
|
4
|
+
- '9.11.1'
|
3
5
|
rvm:
|
4
6
|
- 2.4.1
|
5
|
-
|
7
|
+
|
8
|
+
addons:
|
9
|
+
apt:
|
10
|
+
sources:
|
11
|
+
- google-chrome
|
12
|
+
packages:
|
13
|
+
- google-chrome-stable
|
14
|
+
|
15
|
+
cache:
|
16
|
+
bundler: true
|
17
|
+
directories:
|
18
|
+
- /home/travis/.rvm/
|
19
|
+
- spec/angular-app
|
20
|
+
|
21
|
+
cache: bundler
|
22
|
+
|
23
|
+
before_install:
|
24
|
+
- wget http://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip
|
25
|
+
- unzip chromedriver_linux64.zip
|
26
|
+
- rm chromedriver_linux64.zip
|
27
|
+
- sudo mv -f chromedriver /usr/local/bin/
|
28
|
+
- sudo chmod +x /usr/local/bin/chromedriver
|
29
|
+
- google-chrome-stable --headless --no-sandbox
|
30
|
+
|
31
|
+
- gem install bundler -v 1.16.1
|
32
|
+
- ruby --version
|
33
|
+
- rvm --version
|
34
|
+
- bundle --version
|
35
|
+
- gem --version
|
36
|
+
|
37
|
+
- pwd
|
38
|
+
- ls
|
39
|
+
|
40
|
+
install:
|
41
|
+
|
42
|
+
before_script:
|
43
|
+
- bundle install
|
44
|
+
|
45
|
+
- cd spec/angular-app && npm install && cd ../../
|
46
|
+
- export DISPLAY=:99.0
|
47
|
+
- sh -e /etc/init.d/xvfb start
|
48
|
+
- sleep 1
|
49
|
+
|
50
|
+
script:
|
51
|
+
- HEADLESS=true bundle exec rspec spec
|
52
|
+
|
53
|
+
after_success:
|
54
|
+
|
55
|
+
after_failure:
|
56
|
+
|
57
|
+
after_script:
|
58
|
+
|
59
|
+
branches:
|
60
|
+
|
61
|
+
notifications:
|
62
|
+
email: false
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capybara_spa (0.
|
4
|
+
capybara_spa (0.3.0)
|
5
5
|
capybara (~> 3.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -11,6 +11,7 @@ GEM
|
|
11
11
|
public_suffix (>= 2.0.2, < 4.0)
|
12
12
|
archive-zip (0.11.0)
|
13
13
|
io-like (~> 0.3.0)
|
14
|
+
bump (0.6.0)
|
14
15
|
byebug (10.0.2)
|
15
16
|
capybara (3.0.3)
|
16
17
|
addressable
|
@@ -75,6 +76,7 @@ PLATFORMS
|
|
75
76
|
ruby
|
76
77
|
|
77
78
|
DEPENDENCIES
|
79
|
+
bump (~> 0.6.0)
|
78
80
|
bundler (~> 1.16)
|
79
81
|
capybara_spa!
|
80
82
|
chromedriver-helper (~> 1.2)
|
data/capybara_spa.gemspec
CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
33
|
spec.add_dependency "capybara", "~> 3.0"
|
34
|
+
spec.add_development_dependency "bump", "~> 0.6.0"
|
34
35
|
spec.add_development_dependency "bundler", "~> 1.16"
|
35
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
36
37
|
spec.add_development_dependency "rspec", "~> 3.0"
|
data/lib/capybara_spa.rb
CHANGED
@@ -23,8 +23,9 @@ module CapybaraSpa
|
|
23
23
|
attr_accessor :build_path, :http_server_bin_path, :log_file, :pid_file, :port
|
24
24
|
attr_accessor :pid
|
25
25
|
|
26
|
-
def initialize(build_path
|
27
|
-
|
26
|
+
def initialize(build_path: nil, http_server_bin_path: nil, log_file: CapybaraSpa.log_file, pid_file: nil, port: nil)
|
27
|
+
build_path ||= ENV.fetch('NG_BUILD_PATH', nil)
|
28
|
+
@build_path = File.expand_path(build_path) if build_path
|
28
29
|
@http_server_bin_path = http_server_bin_path || ENV.fetch('NG_HTTP_SERVER_BIN') { find_http_server_bin_path }
|
29
30
|
@log_file = log_file
|
30
31
|
@pid_file = pid_file || ENV.fetch('NG_PID_FILE', '/tmp/angular-process.pid')
|
@@ -46,7 +47,7 @@ module CapybaraSpa
|
|
46
47
|
check_requirements!
|
47
48
|
|
48
49
|
@pid = fork do
|
49
|
-
STDOUT.reopen(@log_file)
|
50
|
+
STDOUT.reopen(@log_file) unless @log_file == STDOUT
|
50
51
|
run_server
|
51
52
|
end
|
52
53
|
File.write(pid_file, pid)
|
@@ -58,7 +59,7 @@ module CapybaraSpa
|
|
58
59
|
def stop
|
59
60
|
if File.exist?(pid_file)
|
60
61
|
pid = File.read(pid_file).to_i
|
61
|
-
puts "
|
62
|
+
puts "capybara_spa/angular-http-server:parent#at_exit sending SIGTERM to pid: #{pid}" if ENV['DEBUG']
|
62
63
|
begin
|
63
64
|
Process.kill 'SIGTERM', pid
|
64
65
|
Process.wait pid
|
@@ -66,12 +67,12 @@ module CapybaraSpa
|
|
66
67
|
# no-op, the child process does not exist
|
67
68
|
end
|
68
69
|
|
69
|
-
puts "
|
70
|
+
puts "capybara_spa/angular-http-server removing pid_file: #{pid_file}" if ENV['DEBUG']
|
70
71
|
FileUtils.rm pid_file
|
71
72
|
@started = false
|
72
73
|
true
|
73
74
|
else
|
74
|
-
puts "
|
75
|
+
puts "capybara_spa/angular-http-server did not find pid_file, no process to SIGHUP: #{pid_file}" if ENV['DEBUG']
|
75
76
|
false
|
76
77
|
end
|
77
78
|
end
|
@@ -85,7 +86,6 @@ module CapybaraSpa
|
|
85
86
|
|
86
87
|
def check_executable_requirements!
|
87
88
|
executable_name = File.basename(http_server_bin_path)
|
88
|
-
|
89
89
|
if File.exist?(http_server_bin_path)
|
90
90
|
if !File.executable?(http_server_bin_path)
|
91
91
|
raise NgHttpServerNotExecutable, 'File found, but not executable!'
|
@@ -125,32 +125,47 @@ module CapybaraSpa
|
|
125
125
|
# if no http-server found in default PATH then try to find it in node_modules
|
126
126
|
if http_server_bin_path.length == 0
|
127
127
|
http_server_bin_path = File.join(node_modules_path, '.bin', 'angular-http-server')
|
128
|
+
else
|
128
129
|
end
|
129
130
|
|
130
|
-
http_server_bin_path
|
131
|
+
File.expand_path(http_server_bin_path) if http_server_bin_path
|
132
|
+
end
|
133
|
+
|
134
|
+
def node_modules_path
|
135
|
+
cwd = ''
|
136
|
+
loop do
|
137
|
+
path = File.expand_path File.join(build_path, cwd, 'node_modules')
|
138
|
+
if Dir.exist?(path)
|
139
|
+
return path
|
140
|
+
elsif File.expand_path(path) == '/node_modules'
|
141
|
+
raise NodeModulesDirectoryNotFound, 'Cannot find "node_modules" directory. Walked all the way to the root "/"!'
|
142
|
+
else
|
143
|
+
cwd = File.join '..', cwd
|
144
|
+
end
|
145
|
+
end
|
131
146
|
end
|
132
147
|
|
133
148
|
def run_server
|
134
149
|
build_dir = File.dirname(build_path)
|
135
150
|
Dir.chdir(build_dir) do
|
136
151
|
cmd = "#{http_server_bin_path} -p #{port} --path #{File.basename(build_path)}"
|
137
|
-
puts "
|
152
|
+
puts "capybara_spa/angular-http-server is executing command: #{cmd}" if ENV['DEBUG']
|
138
153
|
spawn_cmd(cmd)
|
139
154
|
end
|
140
155
|
end
|
141
156
|
|
142
157
|
def spawn_cmd(cmd)
|
143
|
-
puts "
|
158
|
+
puts "capybara_spa/angular-http-server is executing command: #{cmd}" if ENV['DEBUG']
|
144
159
|
|
145
160
|
# use spawn(cmd, arg1, ... ) version to avoid launching a shell that launches the
|
146
161
|
# http-server or ng process. We want this pid to be the actual process to kill when
|
147
162
|
# this program is done exiting.
|
148
163
|
pid = spawn *cmd.split(/\s+/)
|
149
164
|
|
150
|
-
puts "
|
165
|
+
puts "capybara_spa/angular-http-server:forked child with pid: #{pid}" if ENV['DEBUG']
|
151
166
|
|
152
167
|
at_exit do
|
153
|
-
puts "
|
168
|
+
puts "capybara_spa/angular-http-server:forked#at_exit is sending SIGTERM signal to pid: #{pid}" if ENV['DEBUG']
|
154
169
|
begin
|
155
170
|
Process.kill 'TERM', pid
|
156
171
|
Process.wait pid
|
data/lib/capybara_spa/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara_spa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Dennis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bump
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.6.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|