watchdoge 0.1.4 → 0.1.5
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/lib/watchdoge/configuration.rb +30 -9
- data/lib/watchdoge/image_diff.rb +1 -1
- data/lib/watchdoge/regression.rb +2 -2
- data/lib/watchdoge/version.rb +1 -1
- data/lib/watchdoge/worker.rb +3 -3
- data/lib/watchdoge.rb +0 -1
- data/watchdoge.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6bbea0942ea0ec77d65de759549b4fe4424fad15ed93b90334c4ce55bb82a19b
|
|
4
|
+
data.tar.gz: bf7a691395dfb78b147d3fc0cd26c1f182268c484f240c4ad641e6b44058a07f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b57a2f32f4b698d0166e9ec65603cfe3dc28e5c0b4c121392d9259bf8a7d73273a8f0098274a26b81dbed7422d1fd5c6cadd466c0ed13c575804c13870f7c337
|
|
7
|
+
data.tar.gz: 389b07819187d124daf610d66bcc1aae3db33f00bad613b19921b69d6f93f867a95aeaec45ac9f83640868c3517856f8b5072f426779c5eaeaa792a8595c0ddf
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
# All
|
|
1
|
+
# All Configurable and Hooks
|
|
2
|
+
|
|
3
|
+
# usage:
|
|
4
|
+
# WatchDoge.configure {|config| #custom configuration }
|
|
2
5
|
|
|
3
6
|
# spec:
|
|
4
|
-
#
|
|
7
|
+
# 1. able to load configuration file while WatchDoge.initilize! called
|
|
8
|
+
# 2. able to setting multiple callbacks on one hook
|
|
5
9
|
|
|
6
10
|
require 'watir'
|
|
7
11
|
|
|
8
12
|
module WatchDoge
|
|
9
13
|
class Configuration
|
|
14
|
+
# hook is array of Proc instances
|
|
10
15
|
class Hooks
|
|
11
16
|
attr_accessor :before_regression
|
|
12
17
|
attr_accessor :after_regression
|
|
@@ -24,6 +29,7 @@ module WatchDoge
|
|
|
24
29
|
attr_accessor :base_dir
|
|
25
30
|
|
|
26
31
|
attr_accessor :web_drivers_dir
|
|
32
|
+
|
|
27
33
|
attr_accessor :engine
|
|
28
34
|
attr_accessor :browser
|
|
29
35
|
attr_accessor :cookie_pool
|
|
@@ -42,6 +48,7 @@ module WatchDoge
|
|
|
42
48
|
attr_accessor :firefox_version
|
|
43
49
|
|
|
44
50
|
def initialize
|
|
51
|
+
# base_dir is where WatchDoge stuff operating include installation or configuration
|
|
45
52
|
@base_dir =
|
|
46
53
|
if defined? Rails
|
|
47
54
|
Rails.root.to_s
|
|
@@ -49,32 +56,41 @@ module WatchDoge
|
|
|
49
56
|
Dir.pwd
|
|
50
57
|
end
|
|
51
58
|
|
|
59
|
+
# webdrivers binaries installation directory
|
|
52
60
|
@web_drivers_dir = @base_dir + "/.webdrivers"
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# framwork that Worker used, default to selenium
|
|
53
64
|
@engine = Watir::Browser
|
|
65
|
+
|
|
66
|
+
# default browser used by engine
|
|
54
67
|
@browser = :firefox
|
|
55
68
|
|
|
69
|
+
# where all cookie saved (as yaml)
|
|
56
70
|
@cookie_pool = @base_dir + '/.doge_cookie'
|
|
57
71
|
|
|
72
|
+
# connection timeout threshold(seconds)
|
|
58
73
|
@http_timeout = 120
|
|
59
74
|
|
|
75
|
+
# map of notification sources
|
|
76
|
+
# key: must be stringify of its class name
|
|
77
|
+
# value: hash struct, will passed to constructor while push message
|
|
60
78
|
@notifications = {
|
|
61
|
-
#
|
|
79
|
+
# 'SlackWebhook': {
|
|
62
80
|
# incoming_url: SLACK_WEBHOOK
|
|
63
81
|
# }
|
|
64
|
-
|
|
82
|
+
|
|
83
|
+
# 'MatterMost': {
|
|
65
84
|
# host: HOST,
|
|
66
85
|
# channel_id: CHANNEL_ID,
|
|
67
86
|
# auth_token: AUTH_TOKEN
|
|
68
87
|
# }
|
|
69
|
-
# matter_most: {
|
|
70
|
-
# host: 'HOST',
|
|
71
|
-
# channel_id: 'CHANNEL_ID',
|
|
72
|
-
# auth_token: 'AUTH_TOKEN'
|
|
73
|
-
# }
|
|
74
88
|
}
|
|
75
89
|
|
|
90
|
+
# host for relative URL in regression test.
|
|
76
91
|
@host = ''
|
|
77
92
|
|
|
93
|
+
# regression directory contains reference images and scenario scripts
|
|
78
94
|
@regression_dir =
|
|
79
95
|
if defined?(Rails)
|
|
80
96
|
@base_dir + "/test/watchdoge"
|
|
@@ -83,9 +99,14 @@ module WatchDoge
|
|
|
83
99
|
end
|
|
84
100
|
|
|
85
101
|
@hooks = WatchDoge::Configuration::Hooks.new
|
|
102
|
+
|
|
103
|
+
# Proc for #sign_in_as(resource) in regression scenario
|
|
104
|
+
# worker: WatchDoge instance that executing scnario
|
|
105
|
+
# resource: passed whatever you want
|
|
86
106
|
@sign_in_proc = -> (worker, resource) {}
|
|
87
107
|
@sign_out_proc = -> (worker, resource) {}
|
|
88
108
|
|
|
109
|
+
# specific webdriver version, default to latest if nil
|
|
89
110
|
@chrome_version = nil
|
|
90
111
|
@firefox_version = nil
|
|
91
112
|
end
|
data/lib/watchdoge/image_diff.rb
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
# spec:
|
|
7
7
|
# 1. input only accept ChunkyPNG::Image, output image is also ChunkyPNG::Image
|
|
8
|
-
# 2.
|
|
8
|
+
# 2. able to testing RGBA pixel by pixel. then blending with mask color if diff detected
|
|
9
9
|
|
|
10
10
|
# todo: should improve testing boundary for more accurate diff imagenot.
|
|
11
11
|
|
data/lib/watchdoge/regression.rb
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
# WatchDoge::Regression.run_all_scenarios(:regression)
|
|
6
6
|
|
|
7
7
|
# spec:
|
|
8
|
-
# 1. rake tasks `rake watchdoge:make_reference` and `rake watchdoge:regression` while in Rails
|
|
9
|
-
# 2. generate scenario template by Rails generator
|
|
8
|
+
# 1. should have rake tasks `rake watchdoge:make_reference` and `rake watchdoge:regression` while in Rails
|
|
9
|
+
# 2. able to generate scenario template by Rails generator
|
|
10
10
|
|
|
11
11
|
# todo: support run single scenario
|
|
12
12
|
|
data/lib/watchdoge/version.rb
CHANGED
data/lib/watchdoge/worker.rb
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# screenshot = worker.fullpage_screenshot
|
|
7
7
|
|
|
8
8
|
# spec:
|
|
9
|
-
# 1.
|
|
10
|
-
# 2.
|
|
11
|
-
# 3.
|
|
9
|
+
# 1. should having customized configuration Selenium as its engine
|
|
10
|
+
# 2. engine should default to headless mode
|
|
11
|
+
# 3. able to passing all missing method to its engine
|
|
12
12
|
|
|
13
13
|
# todo:
|
|
14
14
|
# 1. improve or remove cookie related functions, is it necessary for frontend regression?
|
data/lib/watchdoge.rb
CHANGED
data/watchdoge.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'watchdoge'
|
|
3
|
-
s.version = '0.1.
|
|
3
|
+
s.version = '0.1.5'
|
|
4
4
|
s.date = '2019-07-22'
|
|
5
5
|
s.summary = "dogi"
|
|
6
|
-
s.description = "
|
|
6
|
+
s.description = "WatchDoge is Ruby on Rails friendly frontend regression test tool"
|
|
7
7
|
s.authors = ["Shen Lee"]
|
|
8
8
|
s.email = 'no-reply@gmail.com'
|
|
9
9
|
s.files = ["lib/watchdoge.rb"]
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: watchdoge
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shen Lee
|
|
@@ -104,7 +104,7 @@ dependencies:
|
|
|
104
104
|
- - "~>"
|
|
105
105
|
- !ruby/object:Gem::Version
|
|
106
106
|
version: '2.1'
|
|
107
|
-
description:
|
|
107
|
+
description: WatchDoge is Ruby on Rails friendly frontend regression test tool
|
|
108
108
|
email: no-reply@gmail.com
|
|
109
109
|
executables: []
|
|
110
110
|
extensions: []
|