webspicy 0.20.10 → 0.20.11
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eba5a8dc97e7c8f2053da2c52e45d728d1de38777ac2088db74aa2852f0ab8a
|
4
|
+
data.tar.gz: dfd0330f95b8c9e64b63919820b7b48ba1dc0f4a7696ba03877670f41a8812b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 243d021ca1344f09880a3fbda147c38dbacb8791c3e8f541acb524992f6c3e15bb997fbb4423b06c504c95f7a85079fa24d329379b8368cc0b04b11a0a0ab028
|
7
|
+
data.tar.gz: 47a7462b3b080b276f594b0b1df054488fa69c60038c51d2d22a664aeb83ada0c390380de1497a30d0f990bd97638fbc3acdfc636eb8fbe227e37d3c1512f6f0
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Webspicy
|
2
|
+
class Tester
|
3
|
+
class Fakesendgrid
|
4
|
+
include Webspicy::Support::World::Item
|
5
|
+
|
6
|
+
DEFAULT_OPTIONS = {
|
7
|
+
endpoint: "http://fakesendgrid"
|
8
|
+
}
|
9
|
+
|
10
|
+
def initialize(options = {})
|
11
|
+
@options = DEFAULT_OPTIONS.merge(options)
|
12
|
+
end
|
13
|
+
attr_reader :options
|
14
|
+
|
15
|
+
def endpoint
|
16
|
+
options[:endpoint]
|
17
|
+
end
|
18
|
+
|
19
|
+
def clear!
|
20
|
+
res = HTTP.delete("#{endpoint}/api/mails")
|
21
|
+
end
|
22
|
+
|
23
|
+
def emails
|
24
|
+
res = HTTP.get("#{endpoint}/api/mails")
|
25
|
+
JSON.parse(res.body).map{|data| Email.new(data) }
|
26
|
+
end
|
27
|
+
|
28
|
+
def emails_count
|
29
|
+
emails.length
|
30
|
+
end
|
31
|
+
|
32
|
+
def last_email
|
33
|
+
emails.first
|
34
|
+
end
|
35
|
+
|
36
|
+
end # class Fakesendgrid
|
37
|
+
end # class Tester
|
38
|
+
end # module Webspicy
|
39
|
+
require_relative 'fakesendgrid/email'
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Webspicy
|
2
|
+
class Tester
|
3
|
+
class Fakesendgrid
|
4
|
+
class Email
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@data = data
|
8
|
+
end
|
9
|
+
attr_reader :data
|
10
|
+
|
11
|
+
def from
|
12
|
+
@from ||= data["from"]["email"]
|
13
|
+
end
|
14
|
+
|
15
|
+
def to
|
16
|
+
@to ||= data["personalizations"]
|
17
|
+
.select{|h| h.key? "to" }
|
18
|
+
.map{|(h)| h["to"] }
|
19
|
+
.map{|(h)| h["email"] }
|
20
|
+
end
|
21
|
+
|
22
|
+
def subject
|
23
|
+
@subject ||= data["subject"]
|
24
|
+
end
|
25
|
+
|
26
|
+
end # class Email
|
27
|
+
end # class Fakesendgrid
|
28
|
+
end # class Tester
|
29
|
+
end # module Webspicy
|
data/lib/webspicy/version.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'webspicy/tester/fakesendgrid'
|
3
|
+
module Webspicy
|
4
|
+
class Tester
|
5
|
+
class Fakesendgrid
|
6
|
+
describe Email do
|
7
|
+
|
8
|
+
DATA = JSON.parse <<~J
|
9
|
+
{
|
10
|
+
"datetime": "2021-06-02T15:29:27.161Z",
|
11
|
+
"from": {
|
12
|
+
"email": "info@mydomain.be",
|
13
|
+
"name": "Foo Bar"
|
14
|
+
},
|
15
|
+
"subject": "Hello World",
|
16
|
+
"personalizations": [
|
17
|
+
{
|
18
|
+
"to": [
|
19
|
+
{
|
20
|
+
"email": "support@mydomain.fr"
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"content": [
|
26
|
+
{
|
27
|
+
"value": "test",
|
28
|
+
"type": "text/plain"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"value": "test <b>test</b> test",
|
32
|
+
"type": "text/html"
|
33
|
+
}
|
34
|
+
]
|
35
|
+
}
|
36
|
+
J
|
37
|
+
|
38
|
+
subject{
|
39
|
+
Email.new(DATA)
|
40
|
+
}
|
41
|
+
|
42
|
+
it 'works as expected' do
|
43
|
+
expect(subject.from).to eql("info@mydomain.be")
|
44
|
+
expect(subject.to).to eql(["support@mydomain.fr"])
|
45
|
+
expect(subject.subject).to eql("Hello World")
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webspicy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.20.
|
4
|
+
version: 0.20.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernard Lambeau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -98,16 +98,16 @@ dependencies:
|
|
98
98
|
name: http
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 4.4.1
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 4.4.1
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: path
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -261,6 +261,8 @@ files:
|
|
261
261
|
- lib/webspicy/tester/assertions.rb
|
262
262
|
- lib/webspicy/tester/client.rb
|
263
263
|
- lib/webspicy/tester/failure.rb
|
264
|
+
- lib/webspicy/tester/fakesendgrid.rb
|
265
|
+
- lib/webspicy/tester/fakesendgrid/email.rb
|
264
266
|
- lib/webspicy/tester/fakeses.rb
|
265
267
|
- lib/webspicy/tester/fakeses/email.rb
|
266
268
|
- lib/webspicy/tester/fakesmtp.rb
|
@@ -323,6 +325,7 @@ files:
|
|
323
325
|
- spec/unit/support/world/fixtures/yaml.yml
|
324
326
|
- spec/unit/support/world/test_world.rb
|
325
327
|
- spec/unit/test_configuration.rb
|
328
|
+
- spec/unit/tester/fakesendgrid/test_email.rb
|
326
329
|
- spec/unit/tester/fakeses/test_email.rb
|
327
330
|
- spec/unit/tester/fakesmtp/test_email.rb
|
328
331
|
- spec/unit/tester/test_asserter.rb
|