@@ -4,6 +4,7 @@ const { S3 } = require('aws-sdk');
44
55const getConfig = require ( '../support/config' ) ;
66const BucketUtility = require ( '../../lib/utility/bucket-util' ) ;
7+ const { config } = require ( '../../../../../lib/Config' ) ;
78
89const MAX_DAYS = 2147483647 ; // Max 32-bit signed binary integer.
910
@@ -483,7 +484,63 @@ describe('aws-sdk test put bucket lifecycle', () => {
483484 } ) ;
484485 } ) ;
485486
486- describe ( 'with Transitions' , ( ) => {
487+ // use env S3_CONFIG_FILE with tests (needed in S3C Integration tests)
488+ const isTransitionSupported = config . supportedLifecycleRules . includes ( 'Transition' ) ;
489+
490+ ( isTransitionSupported ? describe . skip : describe ) ( 'with Transitions NOT supported' , ( ) => {
491+ it ( 'should return NotImplemented if Transitions rule' , done => {
492+ const params = {
493+ Bucket : bucket ,
494+ LifecycleConfiguration : {
495+ Rules : [ {
496+ ID : 'test' ,
497+ Status : 'Enabled' ,
498+ Prefix : '' ,
499+ Transitions : [ {
500+ Days : 2 ,
501+ StorageClass : 'us-east-2' ,
502+ } ] ,
503+ } ] ,
504+ } ,
505+ } ;
506+ s3 . putBucketLifecycleConfiguration ( params , err => {
507+ assert . strictEqual ( err . statusCode , 501 ) ;
508+ assert . strictEqual ( err . code , 'NotImplemented' ) ;
509+ done ( ) ;
510+ } ) ;
511+ } ) ;
512+
513+ it ( 'should return NotImplemented if rules include Transitions' , done => {
514+ const params = {
515+ Bucket : bucket ,
516+ LifecycleConfiguration : {
517+ Rules : [ {
518+ ID : 'id2' ,
519+ Status : 'Enabled' ,
520+ Prefix : '' ,
521+ Expiration : {
522+ Days : 1 ,
523+ } ,
524+ } , {
525+ ID : 'id1' ,
526+ Status : 'Enabled' ,
527+ Prefix : '' ,
528+ Transitions : [ {
529+ Days : 2 ,
530+ StorageClass : 'us-east-2' ,
531+ } ] ,
532+ } ] ,
533+ } ,
534+ } ;
535+ s3 . putBucketLifecycleConfiguration ( params , err => {
536+ assert . strictEqual ( err . statusCode , 501 ) ;
537+ assert . strictEqual ( err . code , 'NotImplemented' ) ;
538+ done ( ) ;
539+ } ) ;
540+ } ) ;
541+ } ) ;
542+
543+ ( isTransitionSupported ? describe : describe . skip ) ( 'with Transitions' , ( ) => {
487544 // Get lifecycle request params with Transitions.
488545 function getParams ( transitions ) {
489546 const rule = {
0 commit comments