diff --git a/spec/javascripts/tags_module_spec.js b/spec/javascripts/tags_module_spec.js deleted file mode 100644 index 8d9a331e..00000000 --- a/spec/javascripts/tags_module_spec.js +++ /dev/null @@ -1,38 +0,0 @@ -var editor; var module; - -describe("TagsModule", function() { - beforeAll(function() { - fixture = loadFixtures('index.html'); - - editor = new PL.Editor({ - textarea: $('.ple-textarea')[0] - }); - - module = new PL.TagsModule(editor, {}); - }); - - - it("reports key, value, valid", function() { - expect(module).not.toBeUndefined(); - expect(module.key).toBe('tags'); - - expect(module.value()).not.toBe(false); - expect(module.value()).toBe(''); - module.value('cool,rad'); - expect(module.value()).toBe('cool,rad'); - - expect(module.options.name).toBe('tags'); - expect(module.options.required).toBe(false); - - expect(module.valid()).toBe(true); - }); - - - it("adds value to 'tags' key of editor.data, instead of overwriting it", function() { - expect(module.value()).toBe('cool,rad'); - editor.data[module.key] = 'first'; - expect(editor.data.hasOwnProperty(module.key)).toBe(true); - expect(editor.data[module.key]).toBe('first'); - expect(module.value()).toBe('first,cool,rad'); - }); -}); diff --git a/test/ui-testing/tags_module.test.js b/test/ui-testing/tags_module.test.js new file mode 100644 index 00000000..00d46ec2 --- /dev/null +++ b/test/ui-testing/tags_module.test.js @@ -0,0 +1,40 @@ +const timeout = process.env.SLOWMO ? 60000 : 10000; +const fs = require('fs'); +let editor; +let _module; // couldn't use "module" because module was already defined by Nodejs + +beforeAll(async () => { + path = fs.realpathSync('file://../examples/index.html'); + await page.goto('file://' + path, {waitUntil: 'domcontentloaded'}); + await page.evaluate(() => { + editor = new PL.Editor({ + textarea: document.querySelector('.ple-textarea') + }); + _module = new PL.TagsModule(editor, {}); + }); +}); + +describe('TagsModule', () => { + test('reports key, value, valid', async () => { + expect(await page.evaluateHandle(() => _module)).toBeDefined(); + expect(await page.evaluate(() => _module.key)).toBe('tags'); + + expect(await page.evaluate(() => _module.value())).not.toBe(false); + expect(await page.evaluate(() => _module.value())).toBe(''); + await page.evaluate(() => _module.value('cool,rad')); + expect(await page.evaluate(() => _module.value())).toBe('cool,rad'); + + expect(await page.evaluate(() => _module.options.name)).toBe('tags'); + expect(await page.evaluate(() => _module.options.required)).toBe(false); + + expect(await page.evaluate(() => _module.valid())).toBe(true); + }); + + test('adds value to "tags" key of editor.data, instead of overwritting it', async () => { + expect(await page.evaluate(() => _module.value())).toBe('cool,rad'); + await page.evaluate(() => editor.data[_module.key] = 'first'); + expect(await page.evaluate(() => editor.data.hasOwnProperty(_module.key))).toBe(true); + expect(await page.evaluate(() => editor.data[_module.key])).toBe('first'); + expect(await page.evaluate(() => _module.value())).toBe('first,cool,rad'); + }); +}, timeout);