Add most of components and prepare for V1 Release
This commit is contained in:
84
test/marker-with-infowindow.js
Normal file
84
test/marker-with-infowindow.js
Normal file
@@ -0,0 +1,84 @@
|
||||
import Lab from 'lab'
|
||||
import assert from 'assert'
|
||||
import {getPage, loadFile} from './test-setup/test-common'
|
||||
|
||||
export const lab = Lab.script()
|
||||
|
||||
lab.experiment('Marker / Infowindow tests', {timeout: 15000}, function () {
|
||||
let page = null
|
||||
|
||||
async function loadPage () {
|
||||
return loadFile(page, './test-pages/test-marker-with-infowindow.html', {
|
||||
waitUntil: 'domcontentloaded'
|
||||
})
|
||||
}
|
||||
|
||||
lab.before({timeout: 15000}, getPage(p => { page = p }))
|
||||
|
||||
lab.test('Clicking the marker triggers the infowindow', async function () {
|
||||
await loadPage()
|
||||
|
||||
await page.evaluate(() => {
|
||||
// Ensure that the map has been created
|
||||
return window.theVue.$refs.map.$mapPromise
|
||||
.then(() => {
|
||||
// Give some more time for the marker to initialize
|
||||
return new Promise(resolve => setTimeout(resolve, 100))
|
||||
})
|
||||
})
|
||||
|
||||
// Is the infowindow hidden?
|
||||
assert(await page.evaluate(() => {
|
||||
return !document.getElementById('thediv') || (
|
||||
document.getElementById('thediv').offsetWidth === 0 &&
|
||||
document.getElementById('thediv').offsetHeight === 0
|
||||
)
|
||||
}),
|
||||
'infowindow is hidden')
|
||||
|
||||
// Clicked is false
|
||||
assert(await page.evaluate(() => {
|
||||
return !window.theVue.clicked
|
||||
}),
|
||||
'marker is not clicked')
|
||||
|
||||
// Obtain the center
|
||||
const [x, y] = await page.evaluate(() => {
|
||||
const el = window.theVue.$refs.map.$el
|
||||
|
||||
return Promise.resolve([
|
||||
el.offsetLeft + 0.5 * el.offsetWidth,
|
||||
el.offsetTop + 0.5 * el.offsetHeight,
|
||||
])
|
||||
})
|
||||
|
||||
await page.mouse.click(x, y - 20)
|
||||
|
||||
// Clicked is now true!
|
||||
assert(await page.evaluate(() => {
|
||||
return new Promise(resolve => setTimeout(resolve, 100))
|
||||
.then(() => {
|
||||
return window.theVue.clicked
|
||||
})
|
||||
}),
|
||||
'marker is clicked')
|
||||
|
||||
// Infowindow is now open!
|
||||
assert(await page.evaluate(() => {
|
||||
return document.getElementById('thediv').offsetWidth > 10
|
||||
}),
|
||||
'#thediv is visible')
|
||||
|
||||
// shut the infowindow
|
||||
assert(await page.evaluate(() => {
|
||||
window.theVue.infoWindow.open = false
|
||||
return new Promise(resolve => setTimeout(resolve, 100))
|
||||
.then(() => {
|
||||
return !document.getElementById('thediv') || (
|
||||
document.getElementById('thediv').offsetWidth === 0 &&
|
||||
document.getElementById('thediv').offsetHeight === 0
|
||||
)
|
||||
})
|
||||
}), 'setting open=false closes #thediv')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user