/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { moduleFor, test } from 'ember-qunit'; import Constants from 'yarn-ui/constants'; moduleFor('route:yarn-container-log', 'Unit | Route | ContainerLog', { }); test('Basic creation test', function(assert) { let route = this.subject(); assert.ok(route); assert.ok(route.model); }); test('Test getting container log', function(assert) { var response = { logs: "This is syslog", containerID: "container_e32_1456000363780_0002_01_000001", logFileName: "syslog"}; var store = { findRecord: function(type) { return new Ember.RSVP.Promise(function(resolve) { resolve(response); } )} }; assert.expect(6); var route = this.subject(); route.set('store', store); var model = route.model({node_id: "localhost:64318", node_addr: "localhost:8042", container_id: "container_e32_1456000363780_0002_01_000001", filename: "syslog"}); model.then(function(value) { assert.ok(value); assert.ok(value.containerLog); assert.deepEqual(value.containerLog, response); assert.ok(value.nodeInfo); assert.equal(value.nodeInfo.addr, 'localhost:8042'); assert.equal(value.nodeInfo.id, 'localhost:64318'); }); }); /** * This can happen when an empty response is sent from server */ test('Test non HTTP error while getting container log', function(assert) { var error = {}; var response = { logs: "", containerID: "container_e32_1456000363780_0002_01_000001", logFileName: "syslog"}; var store = { findRecord: function(type) { return new Ember.RSVP.Promise(function(resolve, reject) { reject(error); } )} }; assert.expect(6); var route = this.subject(); route.set('store', store); var model = route.model({node_id: "localhost:64318", node_addr: "localhost:8042", container_id: "container_e32_1456000363780_0002_01_000001", filename: "syslog"}); model.then(function(value) { assert.ok(value); assert.ok(value.containerLog); assert.deepEqual(value.containerLog, response); assert.ok(value.nodeInfo); assert.equal(value.nodeInfo.addr, 'localhost:8042'); assert.equal(value.nodeInfo.id, 'localhost:64318'); }); }); test('Test HTTP error while getting container log', function(assert) { var error = {errors: [{status: 404, responseText: 'Not Found'}]}; var response = { logs: "", containerID: "container_e32_1456000363780_0002_01_000001", logFileName: "syslog"}; var store = { findRecord: function(type) { return new Ember.RSVP.Promise(function(resolve, reject) { reject(error); } )} }; assert.expect(5); var route = this.subject(); route.set('store', store); var model = route.model({node_id: "localhost:64318", node_addr: "localhost:8042", container_id: "container_e32_1456000363780_0002_01_000001", filename: "syslog"}); model.then(function(value) { assert.ok(value); assert.ok(value.errors); assert.equal(value.errors.length, 1); assert.equal(value.errors[0].status, 404); assert.equal(value.errors[0].responseText, 'Not Found'); }); });