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});