Files
awesome-cordova-plugins/scripts/build/esm-exports.spec.ts
T

34 lines
1.2 KiB
TypeScript

import { rewriteInjectableExports } from './esm-exports';
describe('rewriteInjectableExports', () => {
test('rewrites inline class exports into instance exports', () => {
const jsFile = `import { AwesomeCordovaNativePlugin } from '@awesome-cordova-plugins/core';
export class File extends AwesomeCordovaNativePlugin {
static pluginName = 'File';
}
//# sourceMappingURL=index.js.map`;
expect(rewriteInjectableExports(jsFile, [{ className: 'File', dirName: 'file', file: '/tmp/file/index.ts' }]))
.toBe(`import { AwesomeCordovaNativePlugin } from '@awesome-cordova-plugins/core';
class FileOriginal extends AwesomeCordovaNativePlugin {
static pluginName = 'File';
}
const File = new FileOriginal();
export { File };
//# sourceMappingURL=index.js.map`);
});
test('keeps supporting legacy named exports', () => {
const jsFile = `class SocialSharingOriginal {}
export { SocialSharingOriginal };`;
expect(
rewriteInjectableExports(jsFile, [
{ className: 'SocialSharing', dirName: 'social-sharing', file: '/tmp/social-sharing/index.ts' },
])
).toBe(`class SocialSharingOriginal {}
const SocialSharing = new SocialSharingOriginal();
export { SocialSharing };`);
});
});