@teambit/schema 0.0.755 → 0.0.758

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -148,6 +148,21 @@ describe('SchemaAspect', function () {
148
148
 
149
149
  expect(apiSchema.toObject()).toMatchObject(json);
150
150
  });
151
+ it('should not throw when it does not recognize the schema', () => {
152
+ const jsonPath = _path().default.join(getMockDir(), 'button-old-schema.json');
153
+
154
+ const json = _fsExtra().default.readJsonSync(jsonPath);
155
+
156
+ const apiSchema = schema.getSchemaFromObject(json);
157
+ expect(apiSchema instanceof _semanticsEntities().APISchema).toBeTruthy();
158
+ expect(apiSchema.module.exports[0] instanceof _semanticsEntities().UnknownSchema).toBeTruthy(); // @ts-ignore
159
+
160
+ expect(apiSchema.module.exports[0].location).toMatchObject({
161
+ file: 'index.ts',
162
+ line: 21,
163
+ character: 14
164
+ });
165
+ });
151
166
  });
152
167
  });
153
168
 
@@ -1 +1 @@
1
- {"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","workspacePath","console","log","loadAspect","SchemaAspect","afterAll","destroyWorkspace","apiSchema","compDir","path","join","src","getMockDir","fs","copy","WorkspaceAspect","track","rootDir","defaultScope","bitMap","write","compId","resolveComponentId","comp","get","getSchema","it","results","toObject","expectedJsonPath","expectedJson","readJsonSync","expect","toMatchObject","jsonPath","json","getSchemaFromObject","APISchema","toBeTruthy","componentId","ComponentID","getCurrentDir","currentDir","__dirname","endsWith","sep","slice"],"sources":["schema.spec.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { loadAspect } from '@teambit/harmony.testing.load-aspect';\nimport { mockWorkspace, destroyWorkspace, WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { SchemaMain } from './schema.main.runtime';\nimport { SchemaAspect } from '.';\n\ndescribe('SchemaAspect', function () {\n let schema: SchemaMain;\n let workspace: Workspace;\n let workspaceData: WorkspaceData;\n beforeAll(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n // eslint-disable-next-line no-console\n console.log('workspace created at ', workspacePath);\n schema = await loadAspect(SchemaAspect, workspacePath);\n });\n afterAll(async () => {\n await destroyWorkspace(workspaceData);\n });\n describe('getSchema()', () => {\n let apiSchema: APISchema;\n beforeAll(async () => {\n const { workspacePath } = workspaceData;\n const compDir = path.join(workspacePath, 'button');\n const src = path.join(getMockDir(), 'button');\n await fs.copy(src, compDir);\n workspace = await loadAspect(WorkspaceAspect, workspacePath);\n await workspace.track({ rootDir: compDir, defaultScope: 'org.scope' });\n await workspace.bitMap.write();\n schema = await loadAspect(SchemaAspect, workspacePath);\n const compId = await workspace.resolveComponentId('button');\n const comp = await workspace.get(compId);\n apiSchema = await schema.getSchema(comp);\n });\n it('should be able to generate JSON object with all schemas', async () => {\n const results = apiSchema.toObject();\n const expectedJsonPath = path.join(getMockDir(), 'button-schemas.json');\n // uncomment the next line temporarily to sync the expected json with new schema changes\n // fs.outputFileSync(expectedJsonPath, JSON.stringify(results, undefined, 2));\n const expectedJson = fs.readJsonSync(expectedJsonPath);\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(results).toMatchObject(expectedJson);\n });\n });\n describe('getSchemaFromObject', () => {\n it('should be able to deserialize an JSON object to SchemaNode instances', () => {\n const jsonPath = path.join(getMockDir(), 'button-schemas.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n expect(apiSchema.componentId instanceof ComponentID).toBeTruthy();\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(apiSchema.toObject()).toMatchObject(json);\n });\n });\n});\n\nfunction getCurrentDir() {\n const currentDir = __dirname;\n if (currentDir.endsWith(`${path.sep}dist`)) return currentDir.slice(0, -5);\n return currentDir;\n}\n\nfunction getMockDir() {\n return path.join(getCurrentDir(), 'mock');\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","workspacePath","console","log","loadAspect","SchemaAspect","afterAll","destroyWorkspace","apiSchema","compDir","path","join","src","getMockDir","fs","copy","WorkspaceAspect","track","rootDir","defaultScope","bitMap","write","compId","resolveComponentId","comp","get","getSchema","it","results","toObject","expectedJsonPath","expectedJson","readJsonSync","expect","toMatchObject","jsonPath","json","getSchemaFromObject","APISchema","toBeTruthy","componentId","ComponentID","module","exports","UnknownSchema","location","file","line","character","getCurrentDir","currentDir","__dirname","endsWith","sep","slice"],"sources":["schema.spec.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { APISchema, UnknownSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { loadAspect } from '@teambit/harmony.testing.load-aspect';\nimport { mockWorkspace, destroyWorkspace, WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { SchemaMain } from './schema.main.runtime';\nimport { SchemaAspect } from '.';\n\ndescribe('SchemaAspect', function () {\n let schema: SchemaMain;\n let workspace: Workspace;\n let workspaceData: WorkspaceData;\n beforeAll(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n // eslint-disable-next-line no-console\n console.log('workspace created at ', workspacePath);\n schema = await loadAspect(SchemaAspect, workspacePath);\n });\n afterAll(async () => {\n await destroyWorkspace(workspaceData);\n });\n describe('getSchema()', () => {\n let apiSchema: APISchema;\n beforeAll(async () => {\n const { workspacePath } = workspaceData;\n const compDir = path.join(workspacePath, 'button');\n const src = path.join(getMockDir(), 'button');\n await fs.copy(src, compDir);\n workspace = await loadAspect(WorkspaceAspect, workspacePath);\n await workspace.track({ rootDir: compDir, defaultScope: 'org.scope' });\n await workspace.bitMap.write();\n schema = await loadAspect(SchemaAspect, workspacePath);\n const compId = await workspace.resolveComponentId('button');\n const comp = await workspace.get(compId);\n apiSchema = await schema.getSchema(comp);\n });\n it('should be able to generate JSON object with all schemas', async () => {\n const results = apiSchema.toObject();\n const expectedJsonPath = path.join(getMockDir(), 'button-schemas.json');\n // uncomment the next line temporarily to sync the expected json with new schema changes\n // fs.outputFileSync(expectedJsonPath, JSON.stringify(results, undefined, 2));\n const expectedJson = fs.readJsonSync(expectedJsonPath);\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(results).toMatchObject(expectedJson);\n });\n });\n describe('getSchemaFromObject', () => {\n it('should be able to deserialize an JSON object to SchemaNode instances', () => {\n const jsonPath = path.join(getMockDir(), 'button-schemas.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n expect(apiSchema.componentId instanceof ComponentID).toBeTruthy();\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(apiSchema.toObject()).toMatchObject(json);\n });\n it('should not throw when it does not recognize the schema', () => {\n const jsonPath = path.join(getMockDir(), 'button-old-schema.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n expect(apiSchema.module.exports[0] instanceof UnknownSchema).toBeTruthy();\n // @ts-ignore\n expect(apiSchema.module.exports[0].location).toMatchObject({ file: 'index.ts', line: 21, character: 14 });\n });\n });\n});\n\nfunction getCurrentDir() {\n const currentDir = __dirname;\n if (currentDir.endsWith(`${path.sep}dist`)) return currentDir.slice(0, -5);\n return currentDir;\n}\n\nfunction getMockDir() {\n return path.join(getCurrentDir(), 'mock');\n}\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ {
2
+ "__schema": "APISchema",
3
+ "location": {
4
+ "file": "index.ts",
5
+ "line": 13,
6
+ "character": 1
7
+ },
8
+ "module": {
9
+ "__schema": "Module",
10
+ "location": {
11
+ "file": "index.ts",
12
+ "line": 13,
13
+ "character": 1
14
+ },
15
+ "exports": [
16
+ {
17
+ "__schema": "VariableSchema",
18
+ "location": {
19
+ "file": "index.ts",
20
+ "line": 21,
21
+ "character": 14
22
+ },
23
+ "name": "a",
24
+ "signature": "const a: 4",
25
+ "type": {
26
+ "__schema": "InferenceTypeSchema",
27
+ "location": {
28
+ "file": "index.ts",
29
+ "line": 21,
30
+ "character": 14
31
+ },
32
+ "type": "4"
33
+ }
34
+ }
35
+ ]
36
+ },
37
+ "componentId": {
38
+ "name": "button",
39
+ "scope": "org.scope"
40
+ }
41
+ }