Ruby Spec

From neuromatch

Discord

sneakers-the-rat#testing23-03-18 21:48:09

@lina gathering some stuff here: Mastodon/Tests Mastodon/Tech WG Exclusive Lists Ruby Spec Ruby spec for home feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/home_feed_spec.rb for public feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/public_feed_spec.rb that gives more examples on how feeds are supposed to be filtered tag feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/tag_feed_spec.rb in case we might want to add exclusive tag feeds (I personally do, self interested bc monsterdon lol) account filter (looks like for blocks): https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/account_statuses_filter_spec.rb

and so on

the question to me is basically how these things are structured: you have some fabricator steps that set up the conditions for the test, but then you also have these `context` statements that looks like plain English strings to me? like how do those and the `describe` fields map onto the code? like is their testing system so good that you can really just write `it {is_expected.to be_filtered }` and that just works???? or how do you define all those.

Also u mentioned they are using a separate JavaScript testing framework? Jest ? that looks like it's configured here: https://github.com/NeuromatchAcademy/mastodon/blob/main/jest.config.js and doesn't cover the glitch flavours, just the mastodon folder. it seems like that is for testing the appearance and function of the JS? not sure how it interacts with the ruby tests.

So for the sake of us learning to write tests here, I don't think we need to aim for full adversarial coverage of the feature, but just get the basics: "when an account is in an exclusive list, their posts dont show up on the home feed." judging from the other tests, it looks like we'll have to also test for boosts from them, but since it's not like a block we don't have to test a bunch of edge cases like interactions.