@@ -3,6 +3,7 @@ import test from 'ava';
3
3
import type { BaseFunction , BaseTraitImplBlock } from './contract' ;
4
4
import { ContractBuilder } from './contract' ;
5
5
import { printContract } from './print' ;
6
+ import { setInfo } from './set-info' ;
6
7
7
8
test ( 'contract basics' , t => {
8
9
const Foo = new ContractBuilder ( 'Foo' ) ;
@@ -89,15 +90,41 @@ test('contract with documentation', t => {
89
90
t . snapshot ( printContract ( Foo ) ) ;
90
91
} ) ;
91
92
92
- test ( 'contract with security info ' , t => {
93
+ test ( 'contract with security contact metadata ' , t => {
93
94
const Foo = new ContractBuilder ( 'Foo' ) ;
94
- Foo . addSecurityTag ( ' [email protected] ') ;
95
+ Foo . addContractMetadata ( { key : 'contact' , value : ' [email protected] ' } ) ;
95
96
t . snapshot ( printContract ( Foo ) ) ;
96
97
} ) ;
97
98
98
- test ( 'contract with security info and documentation ' , t => {
99
+ test ( 'setting metadata with same key throws ' , t => {
99
100
const Foo = new ContractBuilder ( 'Foo' ) ;
100
- Foo . addSecurityTag ( '[email protected] ' ) ;
101
+ Foo . addContractMetadata ( { key :
'contact' , value :
'[email protected] ' } ) ;
102
+
103
+ t . throws ( ( ) => Foo . addContractMetadata ( { key :
'contact' , value :
'[email protected] ' } ) ) ;
104
+ } ) ;
105
+
106
+ test ( 'contract with multiple metadata' , t => {
107
+ const Foo = new ContractBuilder ( 'Foo' ) ;
108
+ Foo . addContractMetadata ( [
109
+ { key :
'contact' , value :
'[email protected] ' } ,
110
+ { key : 'meta' , value : 'data' } ,
111
+ ] ) ;
112
+ t . snapshot ( printContract ( Foo ) ) ;
113
+ } ) ;
114
+
115
+ test ( 'contract with multiple metadata and documentation' , t => {
116
+ const Foo = new ContractBuilder ( 'Foo' ) ;
117
+ Foo . addContractMetadata ( [
118
+ { key :
'contact' , value :
'[email protected] ' } ,
119
+ { key : 'meta' , value : 'data' } ,
120
+ ] ) ;
101
121
Foo . addDocumentation ( 'Some documentation' ) ;
102
122
t . snapshot ( printContract ( Foo ) ) ;
103
123
} ) ;
124
+
125
+ test ( 'contract with setInfo' , t => {
126
+ const Foo = new ContractBuilder ( 'Foo' ) ;
127
+ setInfo ( Foo , { securityContact :
'[email protected] ' , license :
'MIT' } ) ;
128
+
129
+ t . snapshot ( printContract ( Foo ) ) ;
130
+ } ) ;
0 commit comments