mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-08-04 00:00:08 +08:00
34 lines
1.2 KiB
TypeScript
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 };`);
|
|
});
|
|
});
|