webspicy 0.20.13 → 0.20.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01b2fecc83c9d660dc6eba242b306e965196a6ecf9ad12b9b0e5929d9394e1ab
4
- data.tar.gz: 16e008749db41f89755e9c0cc65457e438383044aaf54c6e171fc565b2da8ba0
3
+ metadata.gz: 2a89789c42cdaf51eb907eaf6053eef356acff66102ccb1f579bbb2a85168e56
4
+ data.tar.gz: 8afcba7ec470f2689300f2f9fe4122b7e0e11981617812fc5ce031df213adeb3
5
5
  SHA512:
6
- metadata.gz: 0f7a18cbbfead965fefc954c07ea8ebb2d91e60cfd0e72c2658ec5e7c5c1425b6d9f0c8e2d3c09e7b3399697ab299c36f9873e1837422f785e96e1a298cccfaa
7
- data.tar.gz: 12377e4af44a7b6d65c6daf3c83a41d1201ec3deab8922343b25f8f6483f07fb997dca45ed6e3fbc243c5f869c915642a7e6a867bf90dc0e5f8bae5fda7fb726
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
- rx = /^From:\s*(.*)$/
13
- raw_data
14
- .each_line
15
- .find{|l| l =~ rx }[rx, 1].strip
14
+ email.from
16
15
  end
17
16
 
18
- def to
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
- rx = /^Subject:\s*(.*)$/
29
- raw_data
30
- .each_line
31
- .find{|l| l =~ rx }[rx, 1].strip
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["headerLines"]
20
- .select{|h| h["key"] == "to" }
21
- .map{|h| h["line"][/To:\s*(.*)$/, 1] }
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
@@ -2,7 +2,7 @@ module Webspicy
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 20
5
- TINY = 13
5
+ TINY = 14
6
6
  end
7
7
  VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::TINY}"
8
8
  end
@@ -9,15 +9,28 @@ module Webspicy
9
9
  {
10
10
  "datetime": "2021-06-02T15:29:27.161Z",
11
11
  "from": {
12
- "email": "info@mydomain.be",
13
- "name": "Foo Bar"
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": "support@mydomain.fr"
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("Foo Bar <info@mydomain.be>")
44
- expect(subject.to).to eql(["support@mydomain.fr"])
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: david.parloir@gmail.com
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("Webspicy <noreply@webspicy.io>")
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: test@email.be"
22
+ "line": "Reply-To: noreply@webspicy.io"
23
23
  },
24
24
  {
25
25
  "key": "to",
26
- "line": "To: support@mydomain.fr"
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": "support@mydomain.fr",
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": "test@email.be",
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(["support@mydomain.fr"])
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.13
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-24 00:00:00.000000000 Z
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: