rspec-javascript-matchers 0.0.1
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 +7 -0
- data/Gemfile +4 -0
- data/lib/rspec-javascript-matchers.rb +41 -0
- data/lib/version.rb +39 -0
- data/rspec-javascript-matchers.gemspec +25 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5621b81fccffce58668b9cff5c8b5f61177426c38225130f71c0d4c936cfffa5
|
4
|
+
data.tar.gz: 2ade56d8c32eea63c745b9f27b7b231448b158d022c74b07fd0cae8f589c7693
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6589ba9dd6db1df2c56af1a83b0fbed4946412caf5f483610cba6292722a8de789176369e1de00604fd74748f0fa14d93f0056f00d7da39c422d01394f04b630
|
7
|
+
data.tar.gz: 301bbd4313254501ddaec75b4f8c9b226ce2a8eb45a4f08fb9a5d0a7f2117a82c46a56800a220e76e9c9b3e2cb09d316c035f40e425dc074741929f1dd507ff1
|
data/Gemfile
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
require 'rspec'
|
5
|
+
require 'rspec/matchers'
|
6
|
+
|
7
|
+
RSpec::Matchers.define :be_valid_javascript do
|
8
|
+
match do |actual|
|
9
|
+
failure_reason(actual) == ''
|
10
|
+
end
|
11
|
+
|
12
|
+
def failure_reason(actual)
|
13
|
+
if defined?(V8)
|
14
|
+
cxt = V8::Context.new
|
15
|
+
begin
|
16
|
+
cxt.eval(actual)
|
17
|
+
''
|
18
|
+
rescue V8::Error => e
|
19
|
+
# Because <eval> doesn't provide any meaningful context info here:k:w
|
20
|
+
# Invalid regular expression: missing / at <eval>:4:12
|
21
|
+
e.root_cause.message.gsub('<eval>:', '')
|
22
|
+
end
|
23
|
+
elsif defined?(MiniRacer)
|
24
|
+
context = MiniRacer::Context.new
|
25
|
+
begin
|
26
|
+
context.eval(actual)
|
27
|
+
''
|
28
|
+
rescue MiniRacer::ParseError => e
|
29
|
+
# Because default is:
|
30
|
+
# "Uncaught SyntaxError: Invalid regular expression: missing / at undefined:4:10"
|
31
|
+
e.message.gsub('Uncaught SyntaxError: ', '').gsub(' undefined:', ' ')
|
32
|
+
end
|
33
|
+
else
|
34
|
+
%(Maker sure you have "mini_racer" or "therubyracer" gem in your Gemfile dependencies)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
failure_message do |actual|
|
39
|
+
failure_reason actual
|
40
|
+
end
|
41
|
+
end
|
data/lib/version.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
module RSpecJavascriptMatchers
|
2
|
+
module Version
|
3
|
+
module_function
|
4
|
+
|
5
|
+
# @return [Integer]
|
6
|
+
def major
|
7
|
+
0
|
8
|
+
end
|
9
|
+
|
10
|
+
# @return [Integer]
|
11
|
+
def minor
|
12
|
+
0
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Integer]
|
16
|
+
def patch
|
17
|
+
1
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Hash]
|
21
|
+
def to_h
|
22
|
+
{
|
23
|
+
major: major,
|
24
|
+
minor: minor,
|
25
|
+
patch: patch
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [Hash]
|
30
|
+
def to_a
|
31
|
+
[major, minor, patch].compact
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [String]
|
35
|
+
def to_s
|
36
|
+
to_a.join('.')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
require 'version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "rspec-javascript-matchers"
|
9
|
+
spec.version = RSpecJavascriptMatchers::Version
|
10
|
+
spec.authors = ["Nikita Fedyashev"]
|
11
|
+
spec.email = ["nfedyashev@gmail.com"]
|
12
|
+
spec.summary = %q{RSpec matchers for checking if your Javascript UJS response is valid Javascript code}
|
13
|
+
spec.homepage = "https://github.com/nfedyashev/rspec-javascript-matchers.rb"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = Dir['lib/**/*', '*.md', '*.gemspec', 'Gemfile', 'Rakefile']
|
17
|
+
|
18
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 1.9.3')
|
19
|
+
spec.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
|
20
|
+
|
21
|
+
spec.add_dependency 'rspec', '>= 3.0'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.0'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10'
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec-javascript-matchers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nikita Fedyashev
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-06-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- nfedyashev@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- Gemfile
|
63
|
+
- lib/rspec-javascript-matchers.rb
|
64
|
+
- lib/version.rb
|
65
|
+
- rspec-javascript-matchers.gemspec
|
66
|
+
homepage: https://github.com/nfedyashev/rspec-javascript-matchers.rb
|
67
|
+
licenses:
|
68
|
+
- MIT
|
69
|
+
metadata: {}
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 1.9.3
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.3.6
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 2.7.6
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: RSpec matchers for checking if your Javascript UJS response is valid Javascript
|
90
|
+
code
|
91
|
+
test_files: []
|