mirror of https://github.com/status-im/consul.git
ui: add some basic tests
This commit is contained in:
parent
8c9ab7ba58
commit
de24b2a91e
|
@ -5,11 +5,39 @@ App.rootElement = '#ember-testing';
|
|||
App.setupForTesting();
|
||||
App.injectTestHelpers();
|
||||
|
||||
// common QUnit module declaration
|
||||
// Test "fixtures". We populate these based on the running consul
|
||||
// on the machine where you run the tests.
|
||||
var fixtures = {
|
||||
dc: "dc1",
|
||||
node: null,
|
||||
service: null,
|
||||
key: "fake",
|
||||
value: "foobar"
|
||||
}
|
||||
|
||||
module("Integration tests", {
|
||||
setup: function() {
|
||||
// before each test, ensure the application is ready to run.
|
||||
Ember.run(App, App.advanceReadiness);
|
||||
|
||||
// Discover the service, node and dc info
|
||||
Ember.$.getJSON('/v1/catalog/datacenters').then(function(data) {
|
||||
fixtures.dc = data[0]
|
||||
}).then(function(){
|
||||
Ember.$.getJSON('/v1/internal/ui/nodes?dc=' + fixtures.dc).then(function(data) {
|
||||
fixtures.node = data[0].Node
|
||||
});
|
||||
}).then(function(){
|
||||
Ember.$.getJSON('/v1/internal/ui/services?dc=' + fixtures.dc).then(function(data) {
|
||||
fixtures.service = data[0].Name
|
||||
});
|
||||
});
|
||||
// Create a fake key
|
||||
Ember.$.ajax({
|
||||
url: ("/v1/kv/" + fixtures.key + '?dc=' + fixtures.dc),
|
||||
type: 'PUT',
|
||||
data: fixtures.value
|
||||
})
|
||||
},
|
||||
|
||||
teardown: function() {
|
||||
|
@ -18,14 +46,52 @@ module("Integration tests", {
|
|||
}
|
||||
});
|
||||
|
||||
// QUnit test case
|
||||
test("/", function() {
|
||||
// async helper telling the application to go to the '/' route
|
||||
visit("/");
|
||||
test("services", function() {
|
||||
visit("/")
|
||||
|
||||
// helper waiting the application is idle before running the callback
|
||||
andThen(function() {
|
||||
equal(find("h1").text(), "Base", "Application header is rendered");
|
||||
equal(find("li").length, 3, "There are three items in the list");
|
||||
ok(find("a:contains('Services')").hasClass('active'), "highlights services in nav");
|
||||
equal(find(".ember-list-item-view").length, 1, "renders one service");
|
||||
ok(find(".ember-list-item-view .name:contains('"+ fixtures.service +"')"), "uses service name");
|
||||
ok(find(".ember-list-item-view .name:contains('passing')"), "shows passing check num");
|
||||
});
|
||||
});
|
||||
|
||||
test("servicesShow", function() {
|
||||
visit("/");
|
||||
// First item in list
|
||||
click('.ember-list-item-view .list-group-item');
|
||||
|
||||
andThen(function() {
|
||||
ok(find("a:contains('Services')").hasClass('active'), "highlights services in nav");
|
||||
equal(find(".ember-list-item-view").length, 1, "renders one service");
|
||||
ok(find(".ember-list-item-view .list-group-item").hasClass('active'), "highlights active service");
|
||||
ok(find(".ember-list-item-view .name:contains('"+ fixtures.service +"')"), "uses service name");
|
||||
ok(find(".ember-list-item-view .name:contains('passing')"), "shows passing check num");
|
||||
equal(find("h5").text(), "Nodes", "Shows node list");
|
||||
ok(find("h3.panel-title:contains('"+ fixtures.node +"')"), "Shows node name");
|
||||
});
|
||||
});
|
||||
|
||||
test("nodes", function() {
|
||||
visit("/");
|
||||
click("a:contains('Nodes')");
|
||||
|
||||
andThen(function() {
|
||||
ok(find("a:contains('Nodes')").hasClass('active'), "highlights nodes in nav");
|
||||
equal(find(".ember-list-item-view").length, 1, "renders one node");
|
||||
ok(find(".ember-list-item-view .name:contains('"+ fixtures.node +"')"), "contains node name");
|
||||
ok(find(".ember-list-item-view .name:contains('services')"), "contains services num");
|
||||
});
|
||||
});
|
||||
|
||||
test("kv", function() {
|
||||
visit("/");
|
||||
click("a:contains('Key/Value')");
|
||||
|
||||
andThen(function() {
|
||||
ok(find("a:contains('Key/Value')").hasClass('active'), "highlights kv in nav");
|
||||
equal(find(".list-group-item").length, 1, "renders one key");
|
||||
ok(find(".list-group-item:contains('"+ fixtures.key +"')"), "contains key name");
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue