361 lines
17 KiB
Gherkin
361 lines
17 KiB
Gherkin
|
|
Feature:
|
||
|
|
Testing potential match generation.
|
||
|
|
|
||
|
|
Scenario: Small multi-fandom exchange, only fandom tags.
|
||
|
|
|
||
|
|
Given I create the gift exchange "multifan3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 2 | 2 | 1 |
|
||
|
|
| fandoms | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "multifan3" with the following prompts
|
||
|
|
| type | fandoms |
|
||
|
|
| request | Popular Fandom |
|
||
|
|
| request | Fandom of One |
|
||
|
|
| offer | Rare Fandom 1 |
|
||
|
|
| offer | Fandom of One |
|
||
|
|
And the user "test2" signs up for "multifan3" with the following prompts
|
||
|
|
| type | fandoms |
|
||
|
|
| request | Rare Fandom 1 |
|
||
|
|
| request | Rare Fandom 2 |
|
||
|
|
| offer | Popular Fandom |
|
||
|
|
| offer | Rare Fandom 2 |
|
||
|
|
And the user "test3" signs up for "multifan3" with the following prompts
|
||
|
|
| type | fandoms |
|
||
|
|
| request | Rare Fandom 2 |
|
||
|
|
| request | Rare Fandom 3 |
|
||
|
|
| offer | Popular Fandom |
|
||
|
|
| offer | Rare Fandom 2 |
|
||
|
|
|
||
|
|
When potential matches are generated for "multifan3"
|
||
|
|
Then the potential matches for "multifan3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test2 |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test3 | test1 |
|
||
|
|
| test3 | test2 |
|
||
|
|
|
||
|
|
Scenario: Unconstrained exchange.
|
||
|
|
|
||
|
|
Given I create the gift exchange "unconstrained3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 1 | 0 |
|
||
|
|
And the user "test1" signs up for "unconstrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain |
|
||
|
|
| offer | Evil Villain |
|
||
|
|
And the user "test2" signs up for "unconstrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Sweet Protagonist |
|
||
|
|
| offer | Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "unconstrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Morally Grey |
|
||
|
|
| offer | Morally Grey |
|
||
|
|
|
||
|
|
When potential matches are generated for "unconstrained3"
|
||
|
|
Then the potential matches for "unconstrained3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test2 |
|
||
|
|
| test1 | test3 |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test3 | test1 |
|
||
|
|
| test3 | test2 |
|
||
|
|
|
||
|
|
Scenario: Unconstrained exchange with no tags.
|
||
|
|
|
||
|
|
Given I create the gift exchange "no_tags3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "no_tags3" with the following prompts
|
||
|
|
| type |
|
||
|
|
| request |
|
||
|
|
| offer |
|
||
|
|
And the user "test2" signs up for "no_tags3" with the following prompts
|
||
|
|
| type |
|
||
|
|
| request |
|
||
|
|
| offer |
|
||
|
|
And the user "test3" signs up for "no_tags3" with the following prompts
|
||
|
|
| type |
|
||
|
|
| request |
|
||
|
|
| offer |
|
||
|
|
|
||
|
|
When potential matches are generated for "no_tags3"
|
||
|
|
Then the potential matches for "no_tags3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test2 |
|
||
|
|
| test1 | test3 |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test3 | test1 |
|
||
|
|
| test3 | test2 |
|
||
|
|
|
||
|
|
Scenario: Constrained exchange with no matches.
|
||
|
|
|
||
|
|
Given I create the gift exchange "constrained3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "constrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain |
|
||
|
|
| offer | Evil Villain |
|
||
|
|
And the user "test2" signs up for "constrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Sweet Protagonist |
|
||
|
|
| offer | Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "constrained3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Morally Grey |
|
||
|
|
| offer | Morally Grey |
|
||
|
|
|
||
|
|
When potential matches are generated for "constrained3"
|
||
|
|
Then there should be no potential matches for "constrained3"
|
||
|
|
|
||
|
|
Scenario: Exchange with someone offering Any.
|
||
|
|
|
||
|
|
Given I create the gift exchange "any_offer3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "any_offer3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain |
|
||
|
|
| offer | any |
|
||
|
|
And the user "test2" signs up for "any_offer3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Sweet Protagonist |
|
||
|
|
| offer | Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "any_offer3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Morally Grey |
|
||
|
|
| offer | Morally Grey |
|
||
|
|
|
||
|
|
When potential matches are generated for "any_offer3"
|
||
|
|
Then the potential matches for "any_offer3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test2 |
|
||
|
|
| test1 | test3 |
|
||
|
|
|
||
|
|
Scenario: Exchange with someone requesting Any.
|
||
|
|
|
||
|
|
Given I create the gift exchange "any_request3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "any_request3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | any |
|
||
|
|
| offer | Evil Villain |
|
||
|
|
And the user "test2" signs up for "any_request3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Sweet Protagonist |
|
||
|
|
| offer | Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "any_request3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Morally Grey |
|
||
|
|
| offer | Morally Grey |
|
||
|
|
|
||
|
|
When potential matches are generated for "any_request3"
|
||
|
|
Then the potential matches for "any_request3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test3 | test1 |
|
||
|
|
|
||
|
|
Scenario: Exchange with offers and requests for Any.
|
||
|
|
|
||
|
|
Given I create the gift exchange "any_both3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 1 | 1 |
|
||
|
|
And the user "test1" signs up for "any_both3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | any |
|
||
|
|
| offer | Evil Villain |
|
||
|
|
And the user "test2" signs up for "any_both3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Sweet Protagonist |
|
||
|
|
| offer | any |
|
||
|
|
And the user "test3" signs up for "any_both3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Morally Grey |
|
||
|
|
| offer | Morally Grey |
|
||
|
|
|
||
|
|
When potential matches are generated for "any_both3"
|
||
|
|
Then the potential matches for "any_both3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test3 | test1 |
|
||
|
|
|
||
|
|
Scenario: Exchange with ALL matching.
|
||
|
|
|
||
|
|
Given I create the gift exchange "all_matching3" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 4 | -1 |
|
||
|
|
And the user "test1" signs up for "all_matching3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain, Shy Friend |
|
||
|
|
| offer | Evil Villain, Shy Friend, Anti-Villain, Sweet Protagonist |
|
||
|
|
And the user "test2" signs up for "all_matching3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain, Comic Relief, Sweet Protagonist |
|
||
|
|
| offer | Evil Villain, Comic Relief, Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "all_matching3" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Comic Relief |
|
||
|
|
| offer | Shy Friend, Sweet Protagonist, Comic Relief |
|
||
|
|
|
||
|
|
When potential matches are generated for "all_matching3"
|
||
|
|
Then the potential matches for "all_matching3" should be
|
||
|
|
| offer | request |
|
||
|
|
| test2 | test3 |
|
||
|
|
|
||
|
|
Scenario: Exchange with ALL and Any.
|
||
|
|
|
||
|
|
Given I create the gift exchange "all_and_any4" with the following options
|
||
|
|
| value | minimum | maximum | match |
|
||
|
|
| prompts | 1 | 1 | 1 |
|
||
|
|
| characters | 1 | 4 | -1 |
|
||
|
|
And the user "test1" signs up for "all_and_any4" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain, Shy Friend |
|
||
|
|
| offer | any |
|
||
|
|
And the user "test2" signs up for "all_and_any4" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Evil Villain, Comic Relief, Sweet Protagonist |
|
||
|
|
| offer | Evil Villain, Comic Relief, Sweet Protagonist |
|
||
|
|
And the user "test3" signs up for "all_and_any4" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | Comic Relief |
|
||
|
|
| offer | Shy Friend, Sweet Protagonist, Comic Relief |
|
||
|
|
And the user "test4" signs up for "all_and_any4" with the following prompts
|
||
|
|
| type | characters |
|
||
|
|
| request | any |
|
||
|
|
| offer | Shy Friend, Sweet Protagonist, Comic Relief |
|
||
|
|
|
||
|
|
When potential matches are generated for "all_and_any4"
|
||
|
|
Then the potential matches for "all_and_any4" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test2 |
|
||
|
|
| test1 | test3 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test1 | test4 |
|
||
|
|
| test2 | test4 |
|
||
|
|
| test3 | test4 |
|
||
|
|
| test4 | test3 |
|
||
|
|
|
||
|
|
Scenario: Exchange with freeform restrictions.
|
||
|
|
|
||
|
|
Given I create the gift exchange "freeform4" with the following options
|
||
|
|
| value | minimum | maximum | match | unique |
|
||
|
|
| prompts | 1 | 2 | 1 | n/a |
|
||
|
|
| characters | 1 | 2 | -1 | no |
|
||
|
|
| freeforms | 1 | 2 | 1 | no |
|
||
|
|
And the user "test1" signs up for "freeform4" with the following prompts
|
||
|
|
| type | characters | freeforms |
|
||
|
|
| request | Evil Villain | Fic |
|
||
|
|
| request | Evil Villain, Sweet Protagonist | Fic, Art |
|
||
|
|
| offer | Evil Villain, Sweet Protagonist | Fic |
|
||
|
|
And the user "test2" signs up for "freeform4" with the following prompts
|
||
|
|
| type | characters | freeforms |
|
||
|
|
| request | Comic Relief | Fic |
|
||
|
|
| request | Woobie of Choice | Art |
|
||
|
|
| offer | any | Art |
|
||
|
|
And the user "test3" signs up for "freeform4" with the following prompts
|
||
|
|
| type | characters | freeforms |
|
||
|
|
| request | Sweet Protagonist | Art, Fic |
|
||
|
|
| request | Evil Villain, Anti-Villain | Art |
|
||
|
|
| offer | Evil Villain, Anti-Villain | Fic |
|
||
|
|
And the user "test4" signs up for "freeform4" with the following prompts
|
||
|
|
| type | characters | freeforms |
|
||
|
|
| request | Sweet Protagonist | Fic |
|
||
|
|
| offer | Comic Relief, Sweet Protagonist | Fic |
|
||
|
|
|
||
|
|
When potential matches are generated for "freeform4"
|
||
|
|
Then the potential matches for "freeform4" should be
|
||
|
|
| offer | request |
|
||
|
|
| test1 | test3 |
|
||
|
|
| test1 | test4 |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test3 | test1 |
|
||
|
|
| test4 | test2 |
|
||
|
|
| test4 | test3 |
|
||
|
|
|
||
|
|
Scenario: Multi-fandom exchange with optional tags.
|
||
|
|
|
||
|
|
Given I create the gift exchange "optional3" with the following options
|
||
|
|
| value | minimum | maximum | match | optional | any |
|
||
|
|
| prompts | 2 | 2 | 1 | n/a | n/a |
|
||
|
|
| fandoms | 1 | 1 | 1 | yes | no |
|
||
|
|
| characters | 1 | 1 | 1 | yes | yes |
|
||
|
|
And the user "bookfan" signs up for "optional3" with the following prompts
|
||
|
|
| type | fandoms | characters | optional fandoms |
|
||
|
|
| request | Out-of-Print Book | Rare Woobie | |
|
||
|
|
| request | Rare Book | Obscure Character | |
|
||
|
|
| offer | Out-of-Print Book | any | Rare Book |
|
||
|
|
| offer | Popular Book | any | |
|
||
|
|
And the user "showfan" signs up for "optional3" with the following prompts
|
||
|
|
| type | fandoms | characters | optional fandoms |
|
||
|
|
| request | 80s Cop Show | Badass Partner | |
|
||
|
|
| request | 90s Fantasy Show | Witty Protagonist | |
|
||
|
|
| offer | 80s Cop Show | Badass Partner | |
|
||
|
|
| offer | 90s Fantasy Show | any | 00s SciFi Show |
|
||
|
|
And the user "mixed" signs up for "optional3" with the following prompts
|
||
|
|
| type | fandoms | characters | optional fandoms |
|
||
|
|
| request | Rare Book | Fandom Darling | |
|
||
|
|
| request | 00s SciFi Show | Bounty Hunter | |
|
||
|
|
| offer | Popular Book | any | Rare Book |
|
||
|
|
| offer | 10s Drama Show | any | 90s Fantasy Show |
|
||
|
|
|
||
|
|
When potential matches are generated for "optional3"
|
||
|
|
Then the potential matches for "optional3" should be
|
||
|
|
| offer | request |
|
||
|
|
| mixed | bookfan |
|
||
|
|
| mixed | showfan |
|
||
|
|
| bookfan | mixed |
|
||
|
|
| showfan | mixed |
|
||
|
|
|
||
|
|
Scenario: Exchange with optional tags and restrictions on a different type.
|
||
|
|
|
||
|
|
Given I create the gift exchange "optional4" with the following options
|
||
|
|
| value | minimum | maximum | match | optional | any | unique |
|
||
|
|
| prompts | 1 | 3 | 1 | n/a | n/a | n/a |
|
||
|
|
| characters | 1 | 1 | 1 | yes | no | no |
|
||
|
|
| freeforms | 1 | 1 | 1 | no | no | yes |
|
||
|
|
And the user "test1" signs up for "optional4" with the following prompts
|
||
|
|
| type | character | optional characters | freeform |
|
||
|
|
| request | Warlock | | Fic |
|
||
|
|
| request | Warlock | | Art |
|
||
|
|
| offer | Warlock | Witch, Magician | Fic |
|
||
|
|
And the user "test2" signs up for "optional4" with the following prompts
|
||
|
|
| type | character | optional characters | freeform |
|
||
|
|
| request | Magician | Headologist | Art |
|
||
|
|
| offer | Magician | Headologist, Warlock | Art |
|
||
|
|
And the user "test3" signs up for "optional4" with the following prompts
|
||
|
|
| type | character | optional characters | freeform |
|
||
|
|
| request | Magician | | Fic |
|
||
|
|
| request | Magician | | Art |
|
||
|
|
| request | Magician | | Vid |
|
||
|
|
| offer | Magician | | Fic |
|
||
|
|
| offer | Magician | | Art |
|
||
|
|
| offer | Magician | | Vid |
|
||
|
|
And the user "test4" signs up for "optional4" with the following prompts
|
||
|
|
| type | character | optional characters | freeform |
|
||
|
|
| request | Headologist | Summoner, Witch | Vid |
|
||
|
|
| offer | Headologist | Summoner, Witch | Art |
|
||
|
|
| offer | Headologist | Summoner, Witch | Vid |
|
||
|
|
|
||
|
|
When potential matches are generated for "optional4"
|
||
|
|
Then the potential matches for "optional4" should be
|
||
|
|
| offer | request |
|
||
|
|
| test2 | test1 |
|
||
|
|
| test3 | test2 |
|
||
|
|
| test1 | test3 |
|
||
|
|
| test2 | test3 |
|
||
|
|
| test4 | test2 |
|