flagpole
Version:
Simple and fast DOM integration and REST API testing framework.
42 lines (30 loc) • 1.36 kB
JavaScript
let Flagpole = require('../../dist/index.js').Flagpole;
Flagpole.Suite('iTunes API Tests')
.base('https://itunes.apple.com')
.setConsoleOutput(false)
.onDone(function (suite) {
suite.print();
})
.Scenario('See if there are any 2Pac Videos')
.open('/search?term=2pac&entity=musicVideo').json()
.assertions(function(response) {
response.status().equals('200');
response.headers('Content-Type').contains('text/javascript');
response.headers('content-length').greaterThan(0);
var resultCount = response.select('resultCount');
var results = response.select('results');
var firstTrack = results.first();
resultCount.is('number');
resultCount.greaterThan(0);
results.is('array');
results.length().equals(resultCount.get());
firstTrack.property('wrapperType').equals('track');
firstTrack.property('artworkUrl100').matches(/mzstatic\.com.+100x100bb\.jpg$/);
results.comment('Loop through each result element');
results.label('Make sure every track is type music video.');
results.every(function(track) {
return track.property('kind').toString() == 'music-video';
});
results.find('0.trackExplicitness').in(['notExplicit', 'explicit'])
resultCount.text();
});