discourse/test/javascripts/lib/preload-store-test.js.es6

75 lines
1.9 KiB
Text
Raw Normal View History

import { blank } from 'helpers/qunit-helpers';
2016-07-04 14:15:51 -04:00
import PreloadStore from 'preload-store';
2016-07-04 14:15:51 -04:00
module("preload-store", {
setup() {
PreloadStore.store('bane', 'evil');
}
});
test("get", function() {
blank(PreloadStore.get('joker'), "returns blank for a missing key");
equal(PreloadStore.get('bane'), 'evil', "returns the value for that key");
});
test("remove", function() {
PreloadStore.remove('bane');
blank(PreloadStore.get('bane'), "removes the value if the key exists");
});
2013-07-15 19:47:13 -04:00
asyncTestDiscourse("getAndRemove returns a promise that resolves to null", function() {
expect(1);
PreloadStore.getAndRemove('joker').then(function(result) {
blank(result);
start();
});
});
2013-07-15 19:47:13 -04:00
asyncTestDiscourse("getAndRemove returns a promise that resolves to the result of the finder", function() {
expect(1);
var finder = function() { return 'batdance'; };
PreloadStore.getAndRemove('joker', finder).then(function(result) {
equal(result, 'batdance');
start();
});
});
2013-07-15 19:47:13 -04:00
asyncTestDiscourse("getAndRemove returns a promise that resolves to the result of the finder's promise", function() {
expect(1);
var finder = function() {
2014-09-24 14:17:09 -04:00
return new Ember.RSVP.Promise(function(resolve) { resolve('hahahah'); });
};
PreloadStore.getAndRemove('joker', finder).then(function(result) {
equal(result, 'hahahah');
start();
});
});
2013-07-15 19:47:13 -04:00
asyncTestDiscourse("returns a promise that rejects with the result of the finder's rejected promise", function() {
expect(1);
var finder = function() {
2014-09-24 14:17:09 -04:00
return new Ember.RSVP.Promise(function(resolve, reject) { reject('error'); });
};
PreloadStore.getAndRemove('joker', finder).then(null, function(result) {
equal(result, 'error');
start();
});
});
2013-07-15 19:47:13 -04:00
asyncTestDiscourse("returns a promise that resolves to 'evil'", function() {
expect(1);
PreloadStore.getAndRemove('bane').then(function(result) {
equal(result, 'evil');
start();
});
});