{"version":3,"sources":["https://lively-kernel.org/lively4S2/lively4-markus/test/templates/lively-services-test.js"],"names":["expect","testWorld","loadComponent","describe","that","listCount","logCount","listRefreshed","logRefreshed","checkListRefreshed","done","assert","fail","setTimeout","checkLogRefreshed","getItems","c","serviceList","querySelectorAll","before","timeout","then","refreshServiceList","refreshLog","after","unload","it","fakeServices","Date","now","listServices","items","length","to","be","equal","click","selected","removeAllItems","emptyItem","not","null","innerHTML"],"mappings":"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","file":"lively-services-test.js","sourcesContent":["import {expect} from 'src/external/chai.js';\nimport {testWorld, loadComponent} from './templates-fixture.js';\n\ndescribe(\"Services Tool\",  function() {\n  var that;\n  var listCount = 0, logCount = 0;\n  var listRefreshed = false, logRefreshed = false;\n\n  var checkListRefreshed = function(done) {\n    if (listRefreshed) {\n      return done();\n    }\n    if (++listCount > 8) {\n      assert.fail(listRefreshed, true, 'Does not refresh list');\n      return done();\n    }\n    setTimeout(function() {checkListRefreshed(done);}, 1000);\n  };\n\n  var checkLogRefreshed = function(done) {\n    if (logRefreshed) {\n      return done();\n    }\n    if (++logCount > 8) {\n      assert.fail(logRefreshed, true, 'Does not refresh log');\n      return done();\n    }\n    setTimeout(function() {checkLogRefreshed(done);}, 1000);\n  };\n\n  var getItems = function(c) {\n    return that.serviceList.querySelectorAll('lively-services-item');\n  };\n \n  before(\"load\", function(done){\n    this.timeout(15000);\n    loadComponent(\"lively-services\").then(c => {\n      that = c;\n      that.refreshServiceList = function() { listRefreshed = true; };\n      that.refreshLog = function() { logRefreshed = true; };\n      done();\n    });\n  });\n\n  after(\"unload\", function(done) {\n    that.unload();\n    done();\n  });\n  \n  it(\"should refresh automatically\", function(done) {\n    this.timeout(10000);\n    checkListRefreshed(done);\n  });\n  \n  it(\"should list, select, and remove services\", async function(done) {\n    this.timeout(10000);\n    var fakeServices = {\n      '1': {\n        'entryPoint': 'foo.js',\n        'status': 0,\n        'start': Date.now()\n      },\n      '42': {\n        'entryPoint': 'bar.js',\n        'status': 1,\n        'start': Date.now()\n      }\n    };\n    await that.listServices(fakeServices);\n    var items = getItems();\n    expect(items.length).to.be.equal(2);\n\n    items[1].click();\n\n    var selected = that.removeAllItems();\n    expect(selected).to.be.equal('42');\n\n    items = getItems();\n    expect(items.length).to.be.equal(0);\n\n    await that.listServices({});\n    var emptyItem = that.serviceList.querySelectorAll('.empty');\n    expect(emptyItem).to.not.be.null;\n\n    checkLogRefreshed(done);\n  });\n  \n  after(\"cleanup\", function() {\n    testWorld().innerHTML = \"\";\n  });\n});\n\n\n"]}