Esempio n. 1
0
            it('should successfully process pages by portions', function (done) {
                var model = new Model(),
                    pages = [];

                for (var i = 0; i < 100; i++) {
                    pages.push({
                        url: '/url' + i + '/url'  + (i * 10),
                        en: { field: i % 2 },
                        ru: { field: i % 2 }
                    });
                }

                model.setPages(pages);
                task.getCriteria = function (page, language) {
                    return page[language].field % 2 === 0;
                };

                task.processPage = function (model, page) {
                    page.processed = true;
                    return vow.resolve(page);
                };

                task.processPages(model).then(function () {
                    model.getPages()
                        .filter(function (page) { return page.processed; }).should.have.length(50);
                    done();
                });
            });
           it('should add header.meta to pages', function (done) {
               var pages = [
                       {
                           url: '/',
                           en: { title: 'index en title', tags: ['index1', 'index2'] },
                           ru: { title: 'index ru title' }
                       },
                       {
                           url: '/url1',
                           ru: { title: 'url1 ru title' }
                       }
                   ],
                   model = new Model();
               model.setPages(pages);

               task.run(model).then(function (m) {
                   should.deepEqual(m.getPages()[0]['en'].header.meta, {
                       ogUrl: '/',
                       ogType: 'article',
                       description: 'index en title',
                       ogDescription: 'index en title',
                       keywords: 'index1, index2',
                       ogKeywords: 'index1, index2'
                   });

                   should.deepEqual(m.getPages()[0]['ru'].header.meta, {
                       ogUrl: '/',
                       ogType: 'article',
                       description: 'index ru title',
                       ogDescription: 'index ru title',
                       keywords: '',
                       ogKeywords: ''
                   });

                   should.deepEqual(m.getPages()[1]['ru'].header.meta, {
                       ogUrl: '/url1',
                       ogType: 'article',
                       description: 'url1 ru title',
                       ogDescription: 'url1 ru title',
                       keywords: '',
                       ogKeywords: ''
                   });
                  done();
               });
           });