diff --git a/website/docgen/processors/add-toc.js b/website/docgen/processors/add-toc.js index cc82a9a96..2f206e273 100644 --- a/website/docgen/processors/add-toc.js +++ b/website/docgen/processors/add-toc.js @@ -41,6 +41,8 @@ module.exports = function addToc() { // Replace all the docs with the table of contents. docs.length = 0; docs.push({ + id: 'x', + docType: 'js', outputPath: 'toc.json', template: 'toc', toc: toc, diff --git a/website/docgen/processors/tag-fixer.js b/website/docgen/processors/tag-fixer.js index b8dfa9703..576e60e19 100644 --- a/website/docgen/processors/tag-fixer.js +++ b/website/docgen/processors/tag-fixer.js @@ -19,7 +19,7 @@ var findName = function(doc) { } try { - var node = doc.codeNode.node; + var node = doc.codeNode; // Is this a simple declaration? "var element = function() {". if (node.declarations && node.declarations.length) { diff --git a/website/docgen/spec/element-array-finder-all.json b/website/docgen/spec/element-array-finder-all.json new file mode 100644 index 000000000..aae0143fe --- /dev/null +++ b/website/docgen/spec/element-array-finder-all.json @@ -0,0 +1,27 @@ +{ + "codeNode": { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "MemberExpression", + "object": { + "type": "MemberExpression", + "object": { + "type": "Identifier", + "name": "ElementArrayFinder" + }, + "property": { + "type": "Identifier", + "name": "prototype" + } + }, + "property": { + "type": "Identifier", + "name": "all" + } + } + } + } +} diff --git a/website/docgen/spec/element-array-finder.json b/website/docgen/spec/element-array-finder.json new file mode 100644 index 000000000..fab58a010 --- /dev/null +++ b/website/docgen/spec/element-array-finder.json @@ -0,0 +1,14 @@ +{ + "codeNode": { + "type": "VariableDeclaration", + "declarations": [ + { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "ElementArrayFinder" + } + } + ] + } +} diff --git a/website/docgen/spec/tag-fixer-spec.js b/website/docgen/spec/tag-fixer-spec.js index 8fec914c0..905ef97f3 100644 --- a/website/docgen/spec/tag-fixer-spec.js +++ b/website/docgen/spec/tag-fixer-spec.js @@ -1,79 +1,48 @@ var tagFixerFn = require('../processors/tag-fixer'); +var elementArrayFinder = require('./element-array-finder.json'); +var elementAll = require('./element-array-finder-all.json'); +var _ = require('lodash'); describe('tag fixer', function() { - var expressionDoc, declarationDoc, docs, tagFixer; + var classMethodStatement, constructorStatement, docs, tagFixer; beforeEach(function() { tagFixer = tagFixerFn(); }); beforeEach(function() { - expressionDoc = { - codeNode: { - node: { - expression: { - left: { - object: { - name: 'element' - }, - property: { - name: 'all' - } - } - } - } - }, - tags: { - description: 'element description' - } - }; + constructorStatement = _.cloneDeep(elementArrayFinder); + classMethodStatement = _.cloneDeep(elementAll); - declarationDoc = { - codeNode: { - node: { - declarations: [ - { - id: { - name: 'element' - } - } - ] - } - }, - tags: { - description: 'element description' - } - }; - - docs = [expressionDoc, declarationDoc]; + docs = [constructorStatement, classMethodStatement]; }); - it('should find name in code expression', function() { + it('should find name for method declaration', function() { // When you process the docs. tagFixer.$process(docs); // Then ensure the name was parsed. - expect(expressionDoc.name).toBe('element.all'); + expect(classMethodStatement.name).toBe('ElementArrayFinder.prototype.all'); }); - it('should find name in code declaration', function() { + it('should find name for constructor declaration', function() { // When you process the docs. tagFixer.$process(docs); // Then ensure the name was parsed. - expect(declarationDoc.name).toBe('element'); + expect(constructorStatement.name).toBe('ElementArrayFinder'); }); it('should not override name', function() { // Given that the doc has a @name. - expressionDoc.name = 'name1'; - declarationDoc.name = 'name2'; + classMethodStatement.name = 'name1'; + constructorStatement.name = 'name2'; // When you process the docs. tagFixer.$process(docs); // Then ensure the name was not changed. - expect(expressionDoc.name).toBe('name1'); - expect(declarationDoc.name).toBe('name2'); + expect(classMethodStatement.name).toBe('name1'); + expect(constructorStatement.name).toBe('name2'); }); }); diff --git a/website/test/e2e/api_spec.js b/website/test/e2e/api_spec.js index fd055edcd..b344bfbbb 100644 --- a/website/test/e2e/api_spec.js +++ b/website/test/e2e/api_spec.js @@ -51,11 +51,11 @@ describe('Api', function() { expect(browser.getCurrentUrl()).toMatch(/api\?view=ElementArrayFinder/); }); - it('should view item in param link', function() { - // Given that you are viewing element.all. - apiPage.clickOnMenuItem('element.all(locator)'); + it('should view item in param type link', function() { + // Given that you are viewing element.all.filter. + apiPage.clickOnMenuItem('filter'); - // When you click on the ElementFinder link of the params table. + // When you click on the ElementFinder type link of the params table. apiPage.clickOnParamType('ElementFinder'); // Then ensure the type is shown.