nwallace / active_record_block_matchers Goto Github PK
View Code? Open in Web Editor NEWRSpec custom matchers for ActiveRecord
License: MIT License
RSpec custom matchers for ActiveRecord
License: MIT License
Support something like
expect { create_call }.to create_a(User).with_attributes(expected_attributes).and_return_created_record
As a shorthand of which, when simple expectation of the record is performed, add a which_is_expected_to.
So instead of
expect { call }.to create_an(Order).which { |order| expect(order).to be_placed ]
Can be written as
expect { call }.to create_an(Order).which_is_expected_to be_placed
Currently timestamp strategy can't be used when time is being freezed
But for primary key using uuid, primary key strategy can't be used either
It's possible to have timestamp strategy with frozen time, by getting records created at the Time.current, and then looking for records created after that time, or at the same time, but excluding the preexisting ones
Happy to send PR
Add these lines to define negated matchers to allow more flexible assertion chaining
RSpec::Matchers.define_negated_matcher :not_create_an, :create_an
RSpec::Matchers.define_negated_matcher :not_create_a, :create_a
This will allow users to specify attributes with flexible RSpec matchers, like a_hash_including
or a_value ...
(refer: https://relishapp.com/rspec/rspec-expectations/v/3-3/docs/built-in-matchers/have-attributes-matcher)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.