16a23e08bSopenharmony_ci/* 26a23e08bSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 36a23e08bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 46a23e08bSopenharmony_ci * you may not use this file except in compliance with the License. 56a23e08bSopenharmony_ci * You may obtain a copy of the License at 66a23e08bSopenharmony_ci * 76a23e08bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 86a23e08bSopenharmony_ci * 96a23e08bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 106a23e08bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 116a23e08bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 126a23e08bSopenharmony_ci * See the License for the specific language governing permissions and 136a23e08bSopenharmony_ci * limitations under the License. 146a23e08bSopenharmony_ci */ 156a23e08bSopenharmony_ci 166a23e08bSopenharmony_ci'use strict'; 176a23e08bSopenharmony_ci 186a23e08bSopenharmony_ciconst fs = require('fs'); 196a23e08bSopenharmony_ciconst path =require('path'); 206a23e08bSopenharmony_ci 216a23e08bSopenharmony_ciconst chai = require('chai'); 226a23e08bSopenharmony_ciconst sinon = require('sinon'); 236a23e08bSopenharmony_ciconst expect = chai.expect; 246a23e08bSopenharmony_ci 256a23e08bSopenharmony_cifunction getActualJSON(componentName, filaName) { 266a23e08bSopenharmony_ci const filePath = path.join(__dirname,"testcase/build/pages",`${componentName}`, filaName + `.json`); 276a23e08bSopenharmony_ci if(!fs.existsSync(filePath)){ 286a23e08bSopenharmony_ci return {} 296a23e08bSopenharmony_ci } 306a23e08bSopenharmony_ci const fileContent = fs.readFileSync(filePath, "utf-8"); 316a23e08bSopenharmony_ci const fileString = fileContent.toString(); 326a23e08bSopenharmony_ci return JSON.parse(fileString); 336a23e08bSopenharmony_ci} 346a23e08bSopenharmony_ci 356a23e08bSopenharmony_cifunction getExpectJSON(componentName, filaName) { 366a23e08bSopenharmony_ci const filePath = path.join(__dirname, "expected", `${componentName}`, filaName + `.json`); 376a23e08bSopenharmony_ci if(!fs.existsSync(filePath)){ 386a23e08bSopenharmony_ci return {} 396a23e08bSopenharmony_ci } 406a23e08bSopenharmony_ci const expectedContent = fs.readFileSync(filePath, "utf-8"); 416a23e08bSopenharmony_ci const expectedObj = JSON.parse(expectedContent.toString()); 426a23e08bSopenharmony_ci return expectedObj; 436a23e08bSopenharmony_ci} 446a23e08bSopenharmony_ci 456a23e08bSopenharmony_cidescribe('build', () => { 466a23e08bSopenharmony_ci it('commonAttr', () => { 476a23e08bSopenharmony_ci const page = 'commonAttr' 486a23e08bSopenharmony_ci expect(getActualJSON(page, 'commonAttr')).eql(getExpectJSON(page, 'commonAttr')); 496a23e08bSopenharmony_ci }); 506a23e08bSopenharmony_ci it('event', () => { 516a23e08bSopenharmony_ci const page = 'event' 526a23e08bSopenharmony_ci expect(getActualJSON(page, 'event')).eql(getExpectJSON(page, 'event')); 536a23e08bSopenharmony_ci }); 546a23e08bSopenharmony_ci it('expression', () => { 556a23e08bSopenharmony_ci const page = 'expression' 566a23e08bSopenharmony_ci expect(getActualJSON(page, 'expression')).eql(getExpectJSON(page, 'expression')); 576a23e08bSopenharmony_ci }); 586a23e08bSopenharmony_ci it('exteriorStyle', () => { 596a23e08bSopenharmony_ci const page = 'exteriorStyle' 606a23e08bSopenharmony_ci expect(getActualJSON(page, 'exteriorStyl')).eql(getExpectJSON(page, 'exteriorStyl')); 616a23e08bSopenharmony_ci }); 626a23e08bSopenharmony_ci it('ifAttr', () => { 636a23e08bSopenharmony_ci const page = 'ifAttr' 646a23e08bSopenharmony_ci expect(getActualJSON(page, 'ifAttr')).eql(getExpectJSON(page, 'ifAttr')); 656a23e08bSopenharmony_ci }); 666a23e08bSopenharmony_ci it('importCSS', () => { 676a23e08bSopenharmony_ci const page = 'importCSS' 686a23e08bSopenharmony_ci expect(getActualJSON(page, 'importCSS')).eql(getExpectJSON(page, 'importCSS')); 696a23e08bSopenharmony_ci }); 706a23e08bSopenharmony_ci it('importLess', () => { 716a23e08bSopenharmony_ci const page = 'importLess' 726a23e08bSopenharmony_ci expect(getActualJSON(page, 'importLess')).eql(getExpectJSON(page, 'importLess')); 736a23e08bSopenharmony_ci }); 746a23e08bSopenharmony_ci it('inlineStyle', () => { 756a23e08bSopenharmony_ci const page = 'inlineStyle' 766a23e08bSopenharmony_ci expect(getActualJSON(page, 'inlineStyle')).eql(getExpectJSON(page, 'inlineStyle')); 776a23e08bSopenharmony_ci }); 786a23e08bSopenharmony_ci it('mediaQuery', () => { 796a23e08bSopenharmony_ci const page = 'mediaQuery' 806a23e08bSopenharmony_ci expect(getActualJSON(page, 'mediaQuer')).eql(getExpectJSON(page, 'mediaQuer')); 816a23e08bSopenharmony_ci }); 826a23e08bSopenharmony_ci it('privateAttr', () => { 836a23e08bSopenharmony_ci const page = 'privateAttr' 846a23e08bSopenharmony_ci expect(getActualJSON(page, 'privateAttr')).eql(getExpectJSON(page, 'privateAttr')); 856a23e08bSopenharmony_ci }); 866a23e08bSopenharmony_ci it('showAttr', () => { 876a23e08bSopenharmony_ci const page = 'showAttr' 886a23e08bSopenharmony_ci expect(getActualJSON(page, 'showAttr')).eql(getExpectJSON(page, 'showAttr')); 896a23e08bSopenharmony_ci }); 906a23e08bSopenharmony_ci it('withJS', () => { 916a23e08bSopenharmony_ci const page = 'withJS' 926a23e08bSopenharmony_ci expect(getActualJSON(page, 'withJS')).eql(getExpectJSON(page, 'withJS')); 936a23e08bSopenharmony_ci }) 946a23e08bSopenharmony_ci});