Pass a property in to the function, not a string

Leads to clearer code.

I also added some better wording for the unit tests after comments from @kenlim.
Merge pull request #2569 from guardian/commercial-slot-loader

Pass a property in to the function, not a string