webspicy 0.20.13 → 0.20.14
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/webspicy/tester/fakesendgrid/email.rb +17 -0
- data/lib/webspicy/tester/fakeses/email.rb +21 -9
- data/lib/webspicy/tester/fakesmtp/email.rb +7 -3
- data/lib/webspicy/version.rb +1 -1
- data/spec/unit/tester/fakesendgrid/test_email.rb +20 -5
- data/spec/unit/tester/fakeses/test_email.rb +9 -3
- data/spec/unit/tester/fakesmtp/test_email.rb +25 -14
- 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: 2a89789c42cdaf51eb907eaf6053eef356acff66102ccb1f579bbb2a85168e56
|
4
|
+
data.tar.gz: 8afcba7ec470f2689300f2f9fe4122b7e0e11981617812fc5ce031df213adeb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe767864fe5185515cfc9e20a7e5941ba1907979f86904920811c0c44821b8dcf7901f847b310db703497c83a18278b340b6ba30a018c44233660c82657625ec
|
7
|
+
data.tar.gz: 749a0253312d49f05f46e5bd3022c2b657ddccfa0046fc0bdc70a68028161fc68c6f53d0c8e1b3e1cae00e333eb8b8c6429a3034090f5a1e54ea9b8958e81f2f
|
@@ -18,6 +18,23 @@ module Webspicy
|
|
18
18
|
@to ||= data["personalizations"]
|
19
19
|
.select{|h| h.key? "to" }
|
20
20
|
.map{|(h)| h["to"] }
|
21
|
+
.flatten
|
22
|
+
.map{|(h)| h["email"] }
|
23
|
+
end
|
24
|
+
|
25
|
+
def cc
|
26
|
+
@cc ||= data["personalizations"]
|
27
|
+
.select{|h| h.key? "cc" }
|
28
|
+
.map{|(h)| h["cc"] }
|
29
|
+
.flatten
|
30
|
+
.map{|(h)| h["email"] }
|
31
|
+
end
|
32
|
+
|
33
|
+
def bcc
|
34
|
+
@bcc ||= data["personalizations"]
|
35
|
+
.select{|h| h.key? "bcc" }
|
36
|
+
.map{|(h)| h["bcc"] }
|
37
|
+
.flatten
|
21
38
|
.map{|(h)| h["email"] }
|
22
39
|
end
|
23
40
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'mail'
|
2
|
+
|
1
3
|
module Webspicy
|
2
4
|
class Tester
|
3
5
|
class Fakeses
|
@@ -9,13 +11,10 @@ module Webspicy
|
|
9
11
|
attr_reader :data
|
10
12
|
|
11
13
|
def from
|
12
|
-
|
13
|
-
raw_data
|
14
|
-
.each_line
|
15
|
-
.find{|l| l =~ rx }[rx, 1].strip
|
14
|
+
email.from
|
16
15
|
end
|
17
16
|
|
18
|
-
def
|
17
|
+
def recipients
|
19
18
|
data["body"]
|
20
19
|
.each_pair
|
21
20
|
.select{|(k,v)|
|
@@ -24,11 +23,24 @@ module Webspicy
|
|
24
23
|
.map{|(k,v)| v.strip }
|
25
24
|
end
|
26
25
|
|
26
|
+
def to
|
27
|
+
email.to
|
28
|
+
end
|
29
|
+
|
27
30
|
def subject
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
email.subject
|
32
|
+
end
|
33
|
+
|
34
|
+
def cc
|
35
|
+
email.cc
|
36
|
+
end
|
37
|
+
|
38
|
+
def bcc
|
39
|
+
recipients - cc - to
|
40
|
+
end
|
41
|
+
|
42
|
+
def email
|
43
|
+
@email ||= Mail.read_from_string(raw_data)
|
32
44
|
end
|
33
45
|
|
34
46
|
def raw_data
|
@@ -16,9 +16,13 @@ module Webspicy
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def to
|
19
|
-
@to ||= data["
|
20
|
-
.
|
21
|
-
|
19
|
+
@to ||= data["to"]["value"]
|
20
|
+
.map{|h| h["address"] }
|
21
|
+
end
|
22
|
+
|
23
|
+
def cc
|
24
|
+
@cc ||= data["cc"]["value"]
|
25
|
+
.map{|h| h["address"] }
|
22
26
|
end
|
23
27
|
|
24
28
|
def reply_to
|
data/lib/webspicy/version.rb
CHANGED
@@ -9,15 +9,28 @@ module Webspicy
|
|
9
9
|
{
|
10
10
|
"datetime": "2021-06-02T15:29:27.161Z",
|
11
11
|
"from": {
|
12
|
-
"email": "
|
13
|
-
"name": "
|
12
|
+
"email": "noreply@webspicy.io",
|
13
|
+
"name": "Webspicy"
|
14
14
|
},
|
15
15
|
"subject": "Hello World",
|
16
16
|
"personalizations": [
|
17
17
|
{
|
18
18
|
"to": [
|
19
19
|
{
|
20
|
-
"email": "
|
20
|
+
"email": "someone@world.com"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"email": "someoneelse@world.com"
|
24
|
+
}
|
25
|
+
],
|
26
|
+
"cc": [
|
27
|
+
{
|
28
|
+
"email": "a-cc-recipient@world.com"
|
29
|
+
}
|
30
|
+
],
|
31
|
+
"bcc": [
|
32
|
+
{
|
33
|
+
"email": "a-bcc-recipient@world.com"
|
21
34
|
}
|
22
35
|
]
|
23
36
|
}
|
@@ -40,8 +53,10 @@ module Webspicy
|
|
40
53
|
}
|
41
54
|
|
42
55
|
it 'works as expected' do
|
43
|
-
expect(subject.from).to eql("
|
44
|
-
expect(subject.to).to eql(["
|
56
|
+
expect(subject.from).to eql("Webspicy <noreply@webspicy.io>")
|
57
|
+
expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
|
58
|
+
expect(subject.cc).to eql(["a-cc-recipient@world.com"])
|
59
|
+
expect(subject.bcc).to eql(["a-bcc-recipient@world.com"])
|
45
60
|
expect(subject.subject).to eql("Hello World")
|
46
61
|
end
|
47
62
|
|
@@ -9,7 +9,8 @@ module Webspicy
|
|
9
9
|
Content-Type: multipart/alternative;
|
10
10
|
boundary="--_NmP-d246fd025a6652c9-Part_1"
|
11
11
|
From: Webspicy <noreply@webspicy.io>
|
12
|
-
To:
|
12
|
+
To: someone@world.com, someoneelse@world.com
|
13
|
+
CC: a-cc-recipient@world.com
|
13
14
|
Subject: Hey world, hello!
|
14
15
|
Message-ID: <2421bae3-9c42-7988-23b4-b1f6168130c9@webspicy.io>
|
15
16
|
Date: Thu, 24 Jun 2021 13:45:16 +0000
|
@@ -34,6 +35,9 @@ module Webspicy
|
|
34
35
|
"body": {
|
35
36
|
"Source": "noreply@webspicy.io",
|
36
37
|
"Destinations.member.1": "someone@world.com",
|
38
|
+
"Destinations.member.2": "someoneelse@world.com",
|
39
|
+
"Destinations.member.3": "a-cc-recipient@world.com",
|
40
|
+
"Destinations.member.4": "a-bcc-recipient@world.com",
|
37
41
|
"RawMessage.Data": "#{DATA.gsub /\n/, ''}",
|
38
42
|
"Action": "SendRawEmail",
|
39
43
|
"Version": "2010-12-01"
|
@@ -46,8 +50,10 @@ module Webspicy
|
|
46
50
|
}
|
47
51
|
|
48
52
|
it 'works as expected' do
|
49
|
-
expect(subject.from).to eql("
|
50
|
-
expect(subject.to).to eql(["someone@world.com"])
|
53
|
+
expect(subject.from).to eql(["noreply@webspicy.io"])
|
54
|
+
expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
|
55
|
+
expect(subject.cc).to eql(["a-cc-recipient@world.com"])
|
56
|
+
expect(subject.bcc).to eql(["a-bcc-recipient@world.com"])
|
51
57
|
expect(subject.subject).to eql("Hey world, hello!")
|
52
58
|
end
|
53
59
|
|
@@ -19,11 +19,15 @@ module Webspicy
|
|
19
19
|
},
|
20
20
|
{
|
21
21
|
"key": "reply-to",
|
22
|
-
"line": "Reply-To:
|
22
|
+
"line": "Reply-To: noreply@webspicy.io"
|
23
23
|
},
|
24
24
|
{
|
25
25
|
"key": "to",
|
26
|
-
"line": "To:
|
26
|
+
"line": "To: someone@world.com, someoneelse@world.com"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"key": "cc",
|
30
|
+
"line": "Cc: a-cc-recipient@world.com"
|
27
31
|
},
|
28
32
|
{
|
29
33
|
"key": "message-id",
|
@@ -46,12 +50,14 @@ module Webspicy
|
|
46
50
|
"to": {
|
47
51
|
"value": [
|
48
52
|
{
|
49
|
-
"address": "
|
53
|
+
"address": "someone@world.com",
|
54
|
+
"name": ""
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"address": "someoneelse@world.com",
|
50
58
|
"name": ""
|
51
59
|
}
|
52
|
-
]
|
53
|
-
"html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:support@mydomain.fr\\" class=\\"mp_address_email\\">support@mydomain.fr</a></span>",
|
54
|
-
"text": "support@mydomain.fr"
|
60
|
+
]
|
55
61
|
},
|
56
62
|
"from": {
|
57
63
|
"value": [
|
@@ -59,20 +65,24 @@ module Webspicy
|
|
59
65
|
"address": "info@mydomain.be",
|
60
66
|
"name": ""
|
61
67
|
}
|
62
|
-
]
|
63
|
-
"html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:info@mydomain.be\\" class=\\"mp_address_email\\">info@mydomain.be</a></span>",
|
64
|
-
"text": "info@mydomain.be"
|
68
|
+
]
|
65
69
|
},
|
66
70
|
"messageId": "<607edfd56836e_1b0492af@1d3356d02030.mail>",
|
67
71
|
"replyTo": {
|
68
72
|
"value": [
|
69
73
|
{
|
70
|
-
"address": "
|
74
|
+
"address": "noreply@webspicy.io",
|
75
|
+
"name": ""
|
76
|
+
}
|
77
|
+
]
|
78
|
+
},
|
79
|
+
"cc": {
|
80
|
+
"value": [
|
81
|
+
{
|
82
|
+
"address": "a-cc-recipient@world.com",
|
71
83
|
"name": ""
|
72
84
|
}
|
73
|
-
]
|
74
|
-
"html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:test@email.be\\" class=\\"mp_address_email\\">test@email.be</a></span>",
|
75
|
-
"text": "test@email.be"
|
85
|
+
]
|
76
86
|
}
|
77
87
|
}
|
78
88
|
J
|
@@ -83,7 +93,8 @@ module Webspicy
|
|
83
93
|
|
84
94
|
it 'works as expected' do
|
85
95
|
expect(subject.from).to eql("Webspicy <noreply@webspicy.io>")
|
86
|
-
expect(subject.to).to eql(["
|
96
|
+
expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
|
97
|
+
expect(subject.cc).to eql(["a-cc-recipient@world.com"])
|
87
98
|
expect(subject.subject).to eql("Hello World")
|
88
99
|
end
|
89
100
|
|
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.14
|
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-06-
|
11
|
+
date: 2021-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -212,6 +212,20 @@ dependencies:
|
|
212
212
|
- - "~>"
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '1.0'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: mail
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - "~>"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '2.7'
|
222
|
+
type: :runtime
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - "~>"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '2.7'
|
215
229
|
description: Webspicy helps testing web services as software operation black boxes
|
216
230
|
email: blambeau@gmail.com
|
217
231
|
executables:
|