ElectronTests

Build StatusCodecov

Build for and with JSServe!

Usage: Allows you to run javascript inside your app to test all sorts of values:

using ElectronTests
using JSServe: @js_str, Slider, Button, TextField, linkjs, onjs
using JSServe.DOM
using ElectronTests: testsession, runjs, @wait_for, trigger_keyboard_press
using Test
using Markdown

function test_handler(session, req)
    s1 = Slider(1:100)
    s2 = Slider(1:100)
    b = Button("hi")
    t = TextField("Write!")

    linkjs(session, s1.value, s2.value)


    dom = md"""
    # IS THIS REAL?

    My first slider: $(s1)

    My second slider: $(s2)

    Test: $(s1.value)

    The BUTTON: $(b)

    Type something for the list: $(t)

    some list $(t.value)
    """
    return DOM.div(dom, id="testapp")
end

testsession(test_handler) do app
    @test runjs(app, js"document.getElementById('testapp').children.length") == 1
    @test runjs(app, js"document.getElementById('testapp').children[0].children[0].innerText") == "IS THIS REAL?"
    @test runjs(app, js"document.querySelectorAll('input[type=\"button\"]').length") == 1
    @test runjs(app, js"document.querySelectorAll('input[type=\"range\"]').length") == 2
end