1
+ // import { assert } from 'chai';
2
+ // import { getFeatureManifest, getFeatureBlob, getFeatureRef, createManifest } from '../../spec-configuration/containerFeaturesOCI';
1
3
import { assert } from 'chai' ;
2
- import { getFeatureManifest , getFeatureBlob , getFeatureRef } from '../../spec-configuration/containerFeaturesOCI' ;
4
+ import { calculateTgzLayer } from '../../spec-configuration/containerFeaturesOCI' ;
3
5
import { createPlainLog , LogLevel , makeLog } from '../../spec-utils/log' ;
4
6
5
7
export const output = makeLog ( createPlainLog ( text => process . stdout . write ( text ) , ( ) => LogLevel . Trace ) ) ;
8
+ const testAssetsDir = `${ __dirname } /assets` ;
6
9
7
- describe ( 'Test OCI' , ( ) => {
10
+ // describe('Test OCI Pull ', () => {
8
11
9
- it ( 'Parse OCI identifier' , async ( ) => {
10
- const feat = getFeatureRef ( output , 'ghcr.io/codspace/features/ruby:1' ) ;
11
- output . write ( `feat: ${ JSON . stringify ( feat ) } ` ) ;
12
+ // it('Parse OCI identifier', async () => {
13
+ // const feat = getFeatureRef(output, 'ghcr.io/codspace/features/ruby:1');
14
+ // output.write(`feat: ${JSON.stringify(feat)}`);
12
15
13
- assert . equal ( feat . id , 'ghcr.io/codspace/features/ruby' ) ;
14
- assert . equal ( feat . featureName , 'ruby' ) ;
15
- assert . equal ( feat . owner , 'codspace' ) ;
16
- assert . equal ( feat . namespace , 'codspace/features' ) ;
17
- assert . equal ( feat . registry , 'ghcr.io' ) ;
18
- assert . equal ( feat . version , '1' ) ;
19
- } ) ;
16
+ // assert.equal(feat.id, 'ghcr.io/codspace/features/ruby');
17
+ // assert.equal(feat.featureName, 'ruby');
18
+ // assert.equal(feat.owner, 'codspace');
19
+ // assert.equal(feat.namespace, 'codspace/features');
20
+ // assert.equal(feat.registry, 'ghcr.io');
21
+ // assert.equal(feat.version, '1');
22
+ // });
20
23
21
- it ( 'Get a manifest.' , async ( ) => {
22
- const featureRef = getFeatureRef ( output , 'ghcr.io/codspace/features/ruby:1' ) ;
23
- const manifest = await getFeatureManifest ( output , process . env , 'https://ghcr.io/v2/codspace/features/ruby/manifests/1' , featureRef ) ;
24
- assert . isNotNull ( manifest ) ;
25
- assert . exists ( manifest ) ;
24
+ // it('Get a manifest.', async () => {
25
+ // const featureRef = getFeatureRef(output, 'ghcr.io/codspace/features/ruby:1');
26
+ // const manifest = await getFeatureManifest(output, process.env, 'https://ghcr.io/v2/codspace/features/ruby/manifests/1', featureRef);
27
+ // assert.isNotNull(manifest);
28
+ // assert.exists(manifest);
26
29
27
- if ( ! manifest ) {
28
- return ;
29
- }
30
+ // if (!manifest) {
31
+ // return;
32
+ // }
30
33
31
- output . write ( `mediaType: ${ manifest . mediaType } ` ) ;
32
- manifest . layers . forEach ( layer => {
33
- output . write ( `Layer mediaType: ${ layer . mediaType } ` ) ;
34
- output . write ( `Layer digest: ${ layer . digest } ` ) ;
35
- output . write ( `Layer size: ${ layer . size } ` ) ;
34
+ // output.write(`mediaType: ${manifest.mediaType}`);
35
+ // manifest.layers.forEach(layer => {
36
+ // output.write(`Layer mediaType: ${layer.mediaType}`);
37
+ // output.write(`Layer digest: ${layer.digest}`);
38
+ // output.write(`Layer size: ${layer.size}`);
36
39
37
- output . write ( `Layer imageTitle: ${ layer . annotations [ 'org.opencontainers.image.title' ] } ` ) ;
38
- } ) ;
40
+ // output.write(`Layer imageTitle: ${layer.annotations['org.opencontainers.image.title']}`);
41
+ // });
39
42
40
- assert . equal ( manifest . layers [ 0 ] . digest , 'sha256:c33008d0dc12d0e631734082401bec692da809eae2ac51e24f58c1cac68fc0c9' ) ;
41
- } ) ;
43
+ // assert.equal(manifest.layers[0].digest, 'sha256:c33008d0dc12d0e631734082401bec692da809eae2ac51e24f58c1cac68fc0c9');
44
+ // });
45
+
46
+ // it('Download a feature', async () => {
47
+ // const featureRef = getFeatureRef(output, 'ghcr.io/codspace/features/ruby:1');
48
+ // const result = await getFeatureBlob(output, process.env, 'https://ghcr.io/v2/codspace/features/ruby/blobs/sha256:c33008d0dc12d0e631734082401bec692da809eae2ac51e24f58c1cac68fc0c9', '/tmp', '/tmp/featureTest', featureRef);
49
+ // assert.isTrue(result);
50
+ // });
51
+ // });
52
+
53
+ describe ( 'Test OCI Push' , ( ) => {
42
54
43
- it ( 'Download a feature' , async ( ) => {
44
- const featureRef = getFeatureRef ( output , 'ghcr.io/codspace/features/ruby:1' ) ;
45
- const result = await getFeatureBlob ( output , process . env , 'https://ghcr.io/v2/codspace/features/ruby/blobs/sha256:c33008d0dc12d0e631734082401bec692da809eae2ac51e24f58c1cac68fc0c9' , '/tmp' , '/tmp/featureTest' , featureRef ) ;
46
- assert . isTrue ( result ) ;
55
+ it ( 'Generates the correct tgz manifest layer' , async ( ) => {
56
+ const res = await calculateTgzLayer ( output , `${ testAssetsDir } /go.tgz` ) ;
57
+ const expected = {
58
+ digest : 'sha256:b2006e7647191f7b47222ae48df049c6e21a4c5a04acfad0c4ef614d819de4c5' ,
59
+ mediaType : 'application/octet-stream' ,
60
+ size : 15872
61
+ } ;
62
+ assert . deepEqual ( res , expected ) ;
47
63
} ) ;
48
64
} ) ;
0 commit comments