Daniel Waterworth
4ae8065f2c
DEV: Default to skipping creating a topic when fabricating categories ( #7976 )
...
This speeds up the test suite by 9%
2019-08-06 11:26:54 +01:00
Daniel Waterworth
9bb15efca7
DEV: Minor test clarification
...
Replace `(0...3)` for with `3.times`.
2019-08-05 12:16:44 +01:00
Daniel Waterworth
23dd50316c
FIX: Rollback when multisite tests raise exceptions
2019-08-01 15:26:06 +01:00
Daniel Waterworth
b76a1df27d
FIX: Don't reuse redis connections in different threads in tests
...
Redis connections aren't threadsafe since they have state, (watched
keys).
2019-08-01 09:51:22 +01:00
Daniel Waterworth
20bc4a38a5
FIX: DistributedMutex ( #7953 )
2019-08-01 09:12:05 +01:00
Daniel Waterworth
6b0cc9e22e
Marked flaky test
2019-07-09 10:45:11 +01:00
Daniel Waterworth
c3db5925a8
FIX: Turbo tests exit codes
2019-07-09 08:51:23 +01:00
Daniel Waterworth
23c5da4617
DEV: Check for pending migrations before starting the turbo tests
2019-06-27 16:41:19 +01:00
Daniel Waterworth
d6aa92e98e
DEV: Add a verbose option to ./bin/turbo_rspec
2019-06-27 15:49:21 +01:00
Daniel Waterworth
8a0be71b3c
FIX: FakeExceptions should have the original class name
2019-06-27 11:43:53 +01:00
Daniel Waterworth
e58f67a0c0
FIX: an exception cause is itself an exception
2019-06-27 11:43:53 +01:00
Daniel Waterworth
b3ec3fac93
FIX: turbo_rspec doesn't accept these options
2019-06-26 17:05:27 +01:00
Daniel Waterworth
68d54d818a
DEV: Add USE_TURBO option to docker rake task ( #7811 )
2019-06-26 11:54:39 -04:00
Daniel Waterworth
65a6e2c860
Change Widget#attach signature
...
Take a fallback option instead of a list of names
2019-06-26 09:01:25 -04:00
Daniel Waterworth
37b8f5d989
Use dasherize instead of replace
2019-06-26 09:01:25 -04:00
Daniel Waterworth
d025e188e8
Make the linter happy
2019-06-26 09:01:25 -04:00
Daniel Waterworth
70e27641eb
Pass data to description to prevent duplication
2019-06-26 09:01:25 -04:00
Daniel Waterworth
8c349101c5
Pass data to text method to prevent duplication
2019-06-26 09:01:25 -04:00
Daniel Waterworth
86d5208b31
Pass data to url method to avoid duplication
2019-06-26 09:01:25 -04:00
Daniel Waterworth
ac6f7b3625
Remove notificationType argument from text
2019-06-26 09:01:25 -04:00
Daniel Waterworth
a3254b8446
Pull invitee accepted notification behaviour into its own class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
7c52ba1431
Pull liked consolidated notification behaviour into its own class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
42143a874e
Pull custom notification behaviour into its own class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
305562bf66
Pull title logic into its own method
2019-06-26 09:01:25 -04:00
Daniel Waterworth
d83147d137
Rename "title" variable to more apt "description"
2019-06-26 09:01:25 -04:00
Daniel Waterworth
02deaa4bc6
Pull icon choosing into its own method
2019-06-26 09:01:25 -04:00
Daniel Waterworth
36d7abed0b
Pull group message summary behaviour into its own class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
396e13aaa7
Pull liked notification behaviour in its own class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
bd062fcbef
Export DefaultNotificationItem
2019-06-26 09:01:25 -04:00
Daniel Waterworth
04a75b1cb3
Change the way notification items are created
...
Look for the specialised version first, before falling back to the
default. This allows the behaviour to be customised based on the type of
notification.
2019-06-26 09:01:25 -04:00
Daniel Waterworth
cdf0cd3ecd
createWidgetFrom creates a new widget with an arbitrary base class
2019-06-26 09:01:25 -04:00
Daniel Waterworth
01a7fd4225
Make attach optionally take a list of widget names to try
2019-06-26 09:01:25 -04:00
Daniel Waterworth
41129f933d
Rename notification-item to default-notification-item
2019-06-26 09:01:25 -04:00
Daniel Waterworth
7e70db3fb7
s/notName/notificationName/g
2019-06-26 09:01:25 -04:00
Daniel Waterworth
bc03c509ab
FIX: CategoryUser#batch_set ( #7787 )
...
* Remove unused method
* Prefabricate user in category_user_spec.rb
* FIX: Remove notification_level from category_users unique indexes
* FIX: CategoryUser#batch_set wasn't updating pre-existing records
* Improve tests for CategoryUser#batch_set
* FIX: changed was being reported incorrectly
* DEV: Rewrote query to do a bulk insert
* DEV: remove unnecessary parentheses
2019-06-25 12:13:27 +10:00
Daniel Waterworth
feda7e1ddf
DEV: Remove logging when redis is terminated
...
This hasn't proved useful, just noisy.
2019-06-21 10:31:48 +01:00
Daniel Waterworth
e18ce56f4b
DEV: Add a new way to run specs in parallel with better output ( #7778 )
...
* DEV: Add a new way to run specs in parallel with better output
This commit:
1. adds a new executable, `bin/interleaved_rspec` which works much like
`rspec`, but runs the tests in parallel.
2. adds a rake task, `rake interleaved:spec` which runs the whole test
suite.
3. makes autospec use this new wrapper by default. You can disable this
by running `PARALLEL_SPEC=0 rake autospec`.
It works much like the `parallel_tests` gem (and relies on it), but
makes each subprocess use a machine-readable formatter and parses this
output in order to provide a better overall summary.
(It's called interleaved, because parallel was taken and naming is
hard).
* Make popen3 invocation safer
* Use FileUtils instead of shelling out
* DRY up reporter
* Moved summary logic into Reporter
* s/interleaved/turbo/g
* Move Reporter into its own file
* Moved run into its own class
* Moved Runner into its own file
* Move JsonRowsFormatter under TurboTests
* Join on threads at the end
* Acted on feedback from eviltrout
2019-06-21 10:59:01 +10:00
Daniel Waterworth
d073a7d5a8
DEV: Added commit approved notification type for discourse-code-review
...
We need to reserve ids in core so plugins do not clash.
2019-06-11 11:17:23 +10:00
Daniel Waterworth
3407445831
FIX: Prevent deadlock ( #7691 )
...
Before the locking here was added, replying to a post and liking a post
at roughly the same time could cause a deadlock.
Liking a post grabs an update lock on the post and then on the topic (to
update like counts).
We now lock the replied to post before getting the topic lock so that we
can update the replied to post later without causing a deadlock.
2019-06-05 11:29:27 +10:00
Daniel Waterworth
bfb26b720b
FIX: the en_US locale depends on en
2019-05-30 08:46:43 +08:00
Daniel Waterworth
cac7e43ba7
Fixed test suite with PREFABRICATION=0 ( #7574 )
...
The issue here was that, with prefabrication, bumped_at was being
persisted and then loaded and the DB was storing it with less precision
than the object state.
2019-05-23 07:57:12 +10:00
Daniel Waterworth
f46d2ad086
DEV: Update test-prof ( #7572 )
...
* Updated test-prof
* Made rails_helper.rb use new test-prof APIs
Instead of the previous temporary hacks.
* Added environment option to disable prefabrication
It was removed mistakenly
2019-05-21 22:07:40 +10:00
Daniel Waterworth
bf7594b327
More prefabrication
2019-05-10 08:34:04 -04:00
Daniel Waterworth
54cfc48975
Use prefabricated users in bulk_invite_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
6e11ae06d8
Prefabricate admin in wizard_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
bc4748571e
Moved fabrication of topic to top level in topics_bulk_action_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
90c226949c
prefabricate admin in search_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
6f5fb020d2
Prefabricate users in post_revisor_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
cbcfc89fac
prefabrication of users in flag_query_spec.rb
2019-05-10 08:34:04 -04:00
Daniel Waterworth
4da6ca4d9f
PERF: Skip post validation by default when fabricating posts ( #7508 )
...
This speeds up tests by 10%
2019-05-09 10:15:38 +10:00
Daniel Waterworth
ebc5888c95
Prefabricated trust_level_4
2019-05-08 08:57:07 -04:00
Daniel Waterworth
1d0565eca2
Prefabricated admin at the top level
2019-05-08 08:57:07 -04:00
Daniel Waterworth
cef14d81ac
Prefabricated moderator at the top level
2019-05-08 08:57:07 -04:00
Daniel Waterworth
a473a56dc2
Prefabricated user at the top level
2019-05-08 08:57:07 -04:00
Daniel Waterworth
73f25311fa
Prefabricated post by user
2019-05-08 08:54:37 -04:00
Daniel Waterworth
0578809460
Prefabricate trust_level_4
2019-05-08 08:54:37 -04:00
Daniel Waterworth
f984c1740f
Use prefabricated user
2019-05-08 08:54:37 -04:00
Daniel Waterworth
86372a94d5
Prefabricated moderator at the top level
2019-05-08 08:54:37 -04:00
Daniel Waterworth
e3c09c666b
Prefabricated admin
2019-05-08 08:54:37 -04:00
Daniel Waterworth
c7a0baebc5
DEV: Prefabricate more things in topic_spec.rb ( #7490 )
...
* Moved let to more appropriate scopes
* Refactored tests
It's confusing when let blocks in a parent context depend on other let
blocks from a child context.
* Moved fabrication to top level
* Removed unnecessary user fabrications
* Added a trust level 2 user at the top level
* Factored out category
* Made test use generic user
* Prefabricate topic
* Cut down redundant users
* Prefabricated more things
2019-05-07 17:05:52 +02:00
Daniel Waterworth
32e0c4997c
Prefabricated posts
2019-05-07 08:39:45 -04:00
Daniel Waterworth
d3a59a43a1
Prefabricated anonymous
2019-05-07 08:39:45 -04:00
Daniel Waterworth
033d584275
Prefabricated topic
2019-05-07 08:39:45 -04:00
Daniel Waterworth
3e2f7d800a
Replaced create_topic with Fabricate(:topic)
2019-05-07 08:39:45 -04:00
Daniel Waterworth
e79421abb7
Prefabricated users
2019-05-07 08:39:45 -04:00
Daniel Waterworth
c9dedd7d72
Removed unnecessary fab!
2019-05-07 08:38:55 -04:00
Daniel Waterworth
da31661b80
Prefabricate category
2019-05-07 08:38:55 -04:00
Daniel Waterworth
cdf17986aa
Removed unnecessary let
2019-05-07 08:38:55 -04:00
Daniel Waterworth
b95a5330b7
Moved automatic_group fabrication to top level
2019-05-07 08:38:55 -04:00
Daniel Waterworth
5af63def61
Prefabricate group at the top level
2019-05-07 08:38:55 -04:00
Daniel Waterworth
df63080bca
Prefabricate staff_post at the top level
2019-05-07 08:38:55 -04:00
Daniel Waterworth
db64bee0c4
Use prefabricated user
2019-05-07 08:38:55 -04:00
Daniel Waterworth
30676e8a56
Brought prefabrication of another_user to the top level
2019-05-07 08:38:55 -04:00
Daniel Waterworth
2c7ed7b848
Use prefabricated admin instead of creating new ones
2019-05-07 08:38:55 -04:00
Daniel Waterworth
2f706be43a
Reuse prefabricated moderator instead of creating new ones
2019-05-07 08:38:55 -04:00
Daniel Waterworth
16c7b86c86
Use prefabricated user and moderator
2019-05-07 08:38:55 -04:00
Daniel Waterworth
7472f15368
Prefabricate evil_trout
2019-05-07 08:36:29 -04:00
Daniel Waterworth
d3769fff95
Prefabricate admin
2019-05-07 08:36:29 -04:00
Daniel Waterworth
d0c7e3469d
Prefabricated more things
2019-05-07 08:36:29 -04:00
Daniel Waterworth
e219588142
DEV: Prefabrication (test optimization) ( #7414 )
...
* Introduced fab!, a helper that creates database state for a group
It's almost identical to let_it_be, except:
1. It creates a new object for each test by default,
2. You can disable it using PREFABRICATION=0
2019-05-07 13:12:20 +10:00
Daniel Waterworth
75a6c440f7
DEV: Spec clarification example ( #7458 )
2019-04-30 09:41:24 +08:00
Daniel Waterworth
ad44243a57
Removed unused let blocks ( #7446 )
...
The bodies of these blocks were never evaluated.
2019-04-29 15:08:56 +08:00
Daniel Waterworth
bf313c1b68
DEV: User email test optimization ( #7405 )
2019-04-23 17:49:05 +08:00
Daniel Waterworth
7e3628d11f
Added test-prof as a dependency ( #7395 )
...
test-prof is a collection of tools for analyzing test-suite performance.
2019-04-19 10:52:31 +02:00