Files
ionic-framework/vue/test/api.spec.js
2018-10-10 17:04:33 -04:00

185 lines
3.8 KiB
JavaScript

import Vue from 'vue'
import API from '../src/api.js'
const api = new API()
beforeEach(() => {
HTMLElement.prototype.componentOnReady = function() {
const el = this
el.create = function(props = {}) {
return Object.assign(el, props)
}
el.dismiss = function() {
return el
}
el.getTop = el.dismiss
el.open = el.create
el.close = el.dismiss
el.toggle = el.dismiss
el.enable = el.dismiss
el.swipeEnable = el.dismiss
el.isOpen = el.dismiss
el.isEnabled = el.dismiss
el.get = el.dismiss
el.getOpen = el.dismiss
el.getMenus = el.dismiss
return Promise.resolve(el)
}
})
afterEach(() => {
HTMLElement.prototype.componentOnReady = undefined
})
describe('API', () => {
it('Installs correctly', () => {
Vue.use(API)
const app = new Vue()
expect(typeof app.$ionic).toBe('object')
expect(API.install(Vue)).toBeFalsy()
})
it('Creates action sheet controller', () => {
expect.assertions(3)
api.actionSheetController
.dismiss()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.actionSheetController
.getTop()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
return api.actionSheetController.create().then(c => {
return expect(c).toBeTruthy()
})
})
it('Creates alert controllers', () => {
expect.assertions(3)
// Creates initial element
api.alertController
.create({ foo: 'bar' })
.then(c => {
return expect(c.foo).toBe('bar')
})
.catch(err => err)
// Returns previous element with extra props
return api.alertController.create({ bar: 'foo' }).then(c => {
expect(c.foo).toBe('bar')
return expect(c.bar).toBe('foo')
})
})
it('Creates loading controllers', done => {
return api.loadingController.create({ bar: 'foo' }).then(c => {
expect(c.bar).toBe('foo')
return done()
})
})
it('Creates modal controllers', done => {
return api.modalController.create({ bar: 'foo' }).then(c => {
expect(c.bar).toBe('foo')
return done()
})
})
it('Creates popover controllers', done => {
return api.popoverController.create({ bar: 'foo' }).then(c => {
expect(c.bar).toBe('foo')
return done()
})
})
it('Creates toast controllers', done => {
return api.toastController.create({ bar: 'foo' }).then(c => {
expect(c.bar).toBe('foo')
return done()
})
})
it('Creates menu controllers', done => {
expect.assertions(10)
api.menuController
.close()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.toggle()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.enable()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.swipeEnable()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.isOpen()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.isEnabled()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.get()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.getOpen()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
api.menuController
.getMenus()
.then(c => {
return expect(c).toBeTruthy()
})
.catch(err => err)
return api.menuController.open({ bar: 'foo' }).then(c => {
expect(c.bar).toBe('foo')
return done()
})
})
})