/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use rollupObject file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { expect } from 'chai'; import mocha from 'mocha'; import { checkArkCompilerCacheInfo, utCache } from '../../../lib/fast_build/ark_compiler/cache'; import { IS_CACHE_INVALID, ARK_COMPILER_META_INFO, RELEASE } from '../../../lib/fast_build/ark_compiler/common/ark_define'; import RollUpPluginMock from '../mock/rollup_mock/rollup_plugin_mock'; import { SDK_VERSION_MOCK } from '../mock/rollup_mock/common'; mocha.describe('test cache file api', function () { mocha.before(function () { this.rollup = new RollUpPluginMock(); }); mocha.after(() => { delete this.rollup; }); mocha.it('1-1: test checkArkCompilerCacheInfo under build debug', function () { this.rollup.build(); this.rollup.clearCache(); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; this.rollup.share.projectConfig.setCompilerVersion(SDK_VERSION_MOCK); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; }); mocha.it('1-2: test checkArkCompilerCacheInfo under build release', function () { this.rollup.build(RELEASE); this.rollup.clearCache(); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; this.rollup.share.projectConfig.setCompilerVersion(SDK_VERSION_MOCK); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; }); mocha.it('1-3: test checkArkCompilerCacheInfo under preview debug', function () { this.rollup.preview(); this.rollup.clearCache(); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; this.rollup.share.projectConfig.setCompilerVersion(SDK_VERSION_MOCK); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; this.rollup.mockProjectConfigMockParams(); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; }); mocha.it('1-4: test checkArkCompilerCacheInfo under hot reload debug', function () { this.rollup.hotReload(); this.rollup.clearCache(); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; this.rollup.share.projectConfig.setCompilerVersion(SDK_VERSION_MOCK); checkArkCompilerCacheInfo(this.rollup); expect(this.rollup.cache.get(ARK_COMPILER_META_INFO).length > 0).to.be.true; expect(this.rollup.cache.get(IS_CACHE_INVALID) === true).to.be.true; }); mocha.it('2-1: test getMetaInfo under build debug', function () { this.rollup.build(); const metaInfoArr = JSON.stringify(this.rollup.cache.get(ARK_COMPILER_META_INFO)); const returnInfo = JSON.stringify(utCache.getMetaInfo(this.rollup.share.projectConfig)); expect(metaInfoArr === returnInfo).to.be.true; }); mocha.it('2-2: test getMetaInfo under build release', function () { this.rollup.build(RELEASE); const metaInfoArr = JSON.stringify(this.rollup.cache.get(ARK_COMPILER_META_INFO)); const returnInfo = JSON.stringify(utCache.getMetaInfo(this.rollup.share.projectConfig)); expect(metaInfoArr === returnInfo).to.be.true; }); mocha.it('2-3: test getMetaInfo under preview debug', function () { this.rollup.preview(); const metaInfoArr = JSON.stringify(this.rollup.cache.get(ARK_COMPILER_META_INFO)); const returnInfo = JSON.stringify(utCache.getMetaInfo(this.rollup.share.projectConfig)); expect(metaInfoArr === returnInfo).to.be.true; }); mocha.it('2-4: test getMetaInfo under hot reload debug', function () { this.rollup.hotReload(); const metaInfoArr = JSON.stringify(this.rollup.cache.get(ARK_COMPILER_META_INFO)); const returnInfo = JSON.stringify(utCache.getMetaInfo(this.rollup.share.projectConfig)); expect(metaInfoArr === returnInfo).to.be.true; }); });