/* * Copyright (c) 2016 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt The complete set of authors may be found * at http://polymer.github.io/AUTHORS.txt The complete set of contributors may * be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by * Google as part of the polymer project is also subject to an additional IP * rights grant found at http://polymer.github.io/PATENTS.txt */ import {assert} from 'chai'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as yoAssert from 'yeoman-assert'; import * as helpers from 'yeoman-test'; import {createElementGenerator} from '../../../init/element/element'; suite('init/element', () => { let testName = 'creates expected 1.x files while passed the 1.x template name'; test(testName, (done) => { const TestGenerator = createElementGenerator('polymer-1.x'); helpers.run(TestGenerator) .withPrompts({name: 'foobar-element'}) .on('end', () => { yoAssert.file(['bower.json']); yoAssert.fileContent('foobar-element.html', 'Polymer({'); done(); }); }); testName = 'creates expected 2.x files while passed the 2.x template name'; test(testName, (done) => { const TestGenerator = createElementGenerator('polymer-2.x'); helpers.run(TestGenerator) .withPrompts({name: 'foobar-element'}) .on('end', () => { yoAssert.file(['bower.json']); yoAssert.fileContent( 'foobar-element.html', 'class FoobarElement extends Polymer.Element'); done(); }); }); testName = 'ignoring filenames with dangling underscores when generating templates'; test(testName, (done) => { const TestGenerator = createElementGenerator('polymer-1.x'); helpers.run(TestGenerator).on('end', () => { yoAssert.noFile(['_element.html']); done(); }); }); test('works when package.json with no name is present', (done) => { const TestGenerator = createElementGenerator('polymer-1.x'); helpers.run(TestGenerator) .inTmpDir((tempDir) => { fs.writeFileSync(path.join(tempDir, 'package.json'), '{}'); }) .on('error', () => { assert.fail(); done(); }) .on('end', () => { done(); }); }); });